你在main里面,用到的是第二行申明的那个函数swap,但是第二行的那个swap没有哪里定义了,所以自然会出错。如果你的本意是想用下面那个swap函数的话,需要把下面那个函数移到main之前定义,或者把上面那个swap作为下面那个swap的申明也行
第二行的声明 和后面的定义不一样
改成
swap(int *,int *);
声明和定义的参数个数 和参数类型必须完全一样 否则就会报错。
代码没错,编译器比较严格造成的
#include
int main()
{ int a=10,b=20;
int *x=&a,*y=&b;
swap(x,y); printf("%d%d\n",a,b);
return 0;
}
void swap(int *p,int *q)
{ int t; t=*p;*p=*q;*q=t;
}
程序声明错误,最好swap声明返回值类型为void,改动部分注释给出
#include
void swap(int* ,int* );///////
void main()/////////////
{
int a=10,b=20;
int *x=&a,*y=&b;
swap(x,y);
printf("%d %d\n",a,b);
}
void swap(int *p,int *q)//////////////////
{
int t;
t=*p;*p=*q;*q=t;
}
void swap(int *,int *);
void main(void)
{ int a=10,b=20;
int *x=&a,*y=&b;
swap(x,y); printf("%d %d\n",a,b);
}
void swap(int *p,int *q)
{ int t; t=*p;*p=*q;*q=t;
}