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;}【例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;}
int swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
} p1和p2是指针变量,他们本身表示的是地址,而不是变量的值,要交换他们的值就要在前面加上 ‘*’也就是取值符号
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); p1,p2是指针,更改指针的值与更改指针所指的对象的值是两个完全不同的概念
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: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;
}
#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;
}
区分局部变量,指针
页:
[1]
2