这道C语言的题,帮忙解答一下,谢谢。

图片说明

你可以这样理解:fun(&b,a) 中第一个参数是传递地址,第二个是传递变量值,地址存放着变量值,所以fun里面改变了b变量的内容'a'+1='b' 而fun里面的d是值而已,
实际上在main函数中的a还是不变的!所以答案是b,B,b,A ,您还有什么问题吗?

答案是A,传递指针会改变原来变量的值,也就是char b,传递值不会对原变量造成影响。

昨天我看到问两次问题的,关于static变量的,是不是你?如果是,我觉得你应该好好学习基础知识。如果你的C语言基础够,这些都不是问题。不然你的问题始终问不完

答案是A,变量b传进去fun函数的是地址,所以fun函数里面能改变变量b的值。变量a传进fun函数的是变量的值,所以fun函数里面不能改变变量a的值

选A 首先前两个输出不多说了 很简单 说说后两个 为什么b的值改变了 因为b是指针传递的,会改变b的值 a是整型 对a的值不会有大的影响

答案是A,传递指针会改变原来变量的值,变量a传进fun函数的是变量的值,所以fun函数里面不能改变变量a的值

*c=*c+1是获取c地址中的变量并改变它,那么c地址中的值就变为b了,地址是唯一能指定某变量的!因为变量就存放在堆栈的某个地址单元上,所以main的b变量就变化了
而a变量与d变量之间没联系的!d只是临时局部变量,保存了a送给它的值,只有在fun这个作用域里面产生作用,d变化了main中的a不会变化!相当于你复制出一个文件,
你把那个文件删了,原文件还是存在一样道理。