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

#include<stdio.h>fun(inta,intb){intc;c=a;a=b;b=c;}main(){inta=1,b=2;fun(a,b);printf("... # 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);
}
展开
 我来答
cdyzxy
2016-11-23 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3542万
展开全部
因为在函数中的参数,并不是调用者的变量,而是临时申请的变量a和b存放main函数中变量a和b的值,并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。
所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。
更多追问追答
追问
谢谢!
谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式