有关于c语言指针变量的问题

2025-05-14 13:08:22
推荐回答(5个)
回答(1):

你在main里面,用到的是第二行申明的那个函数swap,但是第二行的那个swap没有哪里定义了,所以自然会出错。如果你的本意是想用下面那个swap函数的话,需要把下面那个函数移到main之前定义,或者把上面那个swap作为下面那个swap的申明也行

回答(2):

第二行的声明 和后面的定义不一样
改成
swap(int *,int *);

声明和定义的参数个数 和参数类型必须完全一样 否则就会报错。

回答(3):

代码没错,编译器比较严格造成的
#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;
}

回答(4):

程序声明错误,最好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;
}

回答(5):

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;

}