关于C语言一道考试题不会解答

这道题是写出输出的内容通过fun函数b,c的值都变化了可以fun函数里明明有a++的计算可是为什么输出的a的值还是0?还有一个问题是为什么fun函数里面的计算可以影响到m... 这道题是写出输出的内容 通过fun函数b,c的值都变化了 可以fun函数里明明有a++的计算 可是为什么输出的a的值还是0?还有一个问题是 为什么fun函数里面的计算可以影响到main函数里面变量的值 是因为这些变量作为了fun函数的参数嘛? 展开
 我来答
岔路程序缘

2019-06-19 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3340万
展开全部
应该注意到fun函数所调用的三个参数(形参):
n1是直接调用;
n2是指针调用;
n3是数组调用。
下面用fun(a, &b, c) 来说明调用的实质:
直接调用是系统产生一个实参的副本,即把a的值0复制一份给n1,后面对n1的操作如赋值,都不会影响main函数中变量a的值,所以main函数中a的值仍然是0。
指针调用是把实参变量b的地址赋值给形参变量n2,所以对*n2的操作,会影响到实参b的值。
数组调用的本质也是指针调用,他把数组c的首元素的地址赋给n3,当然对n3的元素的操作也会影响c数组相应元素的变化。
有什么问题请留言。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式