yuan999333 发表于 2020-11-28 12:59

C语言 新手改错求助

【例8.3】:下列是交换两个数的程序,请将其中的错误改正。P224#include <stdio.h>int main( ){       int a,b,*pa,*pb;       pa=&a;       pb=&b;       scanf("%d%d",a, b);       swap(pa,pb);       printf("a=%d,b=%d\n", a, b);       printf("*pa=%d,*pb=%d\n",*pa,*pb);}int swap(int *p1,int *p2){   int temp;       temp=p1;       p1=p2;       p2=temp;}

yuan999333 发表于 2020-11-28 13:06

【例8.3】:下列是交换两个数的程序,请将其中的错误改正。P224
#include <stdio.h>
int main( )
{
        int a,b,*pa,*pb;
        pa=&a;
        pb=&b;
        scanf("%d%d", a, b);
        swap(pa, pb);
        printf("a=%d, b=%d\n", a, b);
        printf("*pa=%d,*pb=%d\n",*pa, *pb);
}
int swap(int *p1,int *p2)
{        int temp;
        temp=p1;
        p1=p2;
        p2=temp;}

天地玄黄 发表于 2020-11-28 13:37

int swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}

TYUTlfx 发表于 2020-11-28 13:43

p1和p2是指针变量,他们本身表示的是地址,而不是变量的值,要交换他们的值就要在前面加上 ‘*’也就是取值符号

huangxiaolin520 发表于 2020-11-28 13:44

int a,b,*pa,*pb;
      pa=&a;
      pb=&b;
      scanf("%d%d", a, b);
      swap(pa, pb);
      printf("a=%d, b=%d\n", a, b);
      printf("*pa=%d,*pb=%d\n",*pa, *pb);

晨星的天空 发表于 2020-11-28 13:45

p1,p2是指针,更改指针的值与更改指针所指的对象的值是两个完全不同的概念

wginui 发表于 2020-11-28 13:50


int swap(int *p1,int *p2){
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;



int * temp;
temep = p1;
p1=p2;
p2=temp;

return 0;
}

fot 发表于 2020-11-28 13:53

本帖最后由 fot 于 2020-11-28 13:56 编辑

#include <stdio.h>
int swap(int *p1,int *p2);
int main( )
{
      int a,b,*pa,*pb;
      pa=&a;
      pb=&b;
      scanf("%d%d", &a,&b);
      swap(pa,pb);
      printf("a=%d, b=%d\n", a, b);
      printf("*pa=%d,*pb=%d\n",*pa, *pb);

}
int swap(int *p1,int *p2)
{      int temp;
      temp=*p1;
      *p1=*p2;
       *p2=temp;
}

yanlusu 发表于 2020-11-28 14:29


#include <stdio.h>
int swap(int *p1,int *p2);

int main( )
{
      int a,b,*pa,*pb;
      pa=&a;
      pb=&b;
      scanf("%d%d", a, b); // here, scanf("%d%d", &a, &b);
      swap(pa, pb);
      printf("a=%d, b=%d\n", a, b);
      printf("*pa=%d,*pb=%d\n",*pa, *pb);
}
int swap(int *p1,int *p2)
{      int temp;
      temp=*p1;
      *p1=*p2;
      *p2=temp;
}

hellobirthday 发表于 2020-11-28 15:07

区分局部变量,指针
页: [1] 2
查看完整版本: C语言 新手改错求助