解释下为什么C语言中用函数交换两个数的值只能用指针,而不能用这个方法。。还有如果用全局变量该怎么写

# include <stdio.h>
fun(int a,int b){
int c;
c=a;
a=b;
b=c;}
main()
{
int a=1,b=2;
fun(a,b);
printf("%d %d",a,b);
}

因为在函数中的参数,并不是调用者的变量,而是临时申请的变量a和b存放main函数中变量a和b的值,并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。
所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。追问

谢谢!

谢谢!

谢谢!

温馨提示:答案为网友推荐,仅供参考
相似回答