对于下面的代码:
#include <stdio.h>
void swap(int a,int b);
int main()
{
int a=5;
int b=7;
swap(a,b);
printf("a=%d,b=%d",a,b);
return 0;
}
void swap(int a,int b)
{
int t =a;
a=b;
b=t;
}
输出结果却是:
a=5,b=7
Process returned 0 (0x0) execution time : 0.086 s
Press any key to continue.
因为在c语言当中,每个函数都有自己的变量空间,参数也位于这个独立的空间当中,和其他函数没有关系。区别于java语言。如果要传值,得要用到指针。
如果想要达到交换a 和b的结果,则要改swap函数为
void swap(int *pa,int *pb)
{
int t=*pa;
*pa=*pb;
*pb=t;
}