为什么a,b不会对调呢

来源:2-1 Linux C语言 初始指针

一条被晒干的咸鱼

2016-09-30 17:18

http://img.mukewang.com/57ee2da70001f03004110268.jpg

就是老师的那个代码

写回答 关注

5回答

  • 慕粉4373963
    2017-06-04 21:09:01

    a,b使用指针,然后将地址传递过去。

  • Only_L
    2017-03-07 10:04:13

    因为change函数使用了void类型,void类型的有一个作用是无返回值的,表示该函数没有返回值,也就是说在change函数内部即使你把a和b的值互换了,但也只是对于这个函数本身,并不能影响到main函数的。

  • 汉江怪人
    2016-10-01 19:45:01

    要使用指针,然后地址传递。

  • 慕勒7079313
    2016-09-30 19:18:30

    简单的说就是作用域导致此a非彼a。虽然变量名字都是a,但一个适用范围在函数里,另一个适用范围在主函数里。想要实现的话需要声明全局变量。推荐你用vs2013调试一下,看的比较直观。

  • 影衣
    2016-09-30 19:04:25

    因为函数参数的传递方式是单向值传递造成的。

    调用 chang() 函数时,将实参 a 和 b 的值对应传递给形参 a 和 b,形参 a 和 b获得初值。当 chang() 函数执行结束,返回主函数时,形参 a和b 的内存空间被释放,即形参 a 和 b 不在存在。但是形参的值并没有传递给实参 a 和 b,所以实参 a 和 b 的值仍然是他们的初始值。

Linux C语言指针与内存

指针-C语言的核心,代领大家对c语言有更加深刻的理解

116475 学习 · 250 问题

查看课程

相似问题