qq_29901455
qq_29901455
采纳率73.1%
2017-11-16 13:30 阅读 971
已采纳

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

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    qq_39574690 两水先木示 2017-11-18 01:40

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

    点赞 评论 复制链接分享
  • ranyixu11 doggy_coder 2017-11-17 00:58

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

    点赞 1 评论 复制链接分享
  • flyliu2017 flyliu2017 2017-11-16 13:33

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

    点赞 评论 复制链接分享
  • Simple_china Simple_china 2017-11-16 14:46

    可以在编译器里调试看一下

    点赞 评论 复制链接分享
  • li6201577 li6201577 2017-11-17 01:27

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

    点赞 评论 复制链接分享
  • chenxiansheng888 狗子猴子驴子 2017-11-17 01:55

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

    点赞 评论 复制链接分享
  • qq_39356904 谢以轩 2017-11-17 04:26

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

    点赞 评论 复制链接分享
  • qq_39574690 两水先木示 2017-11-18 01:44

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

    点赞 评论 复制链接分享

相关推荐