对于下面的代码:
#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;
}