课程
/后端开发
/C
/Linux C语言指针与内存
就是老师的那个代码
2016-09-30
源自:Linux C语言指针与内存 2-1
正在回答
a,b使用指针,然后将地址传递过去。
因为change函数使用了void类型,void类型的有一个作用是无返回值的,表示该函数没有返回值,也就是说在change函数内部即使你把a和b的值互换了,但也只是对于这个函数本身,并不能影响到main函数的。
要使用指针,然后地址传递。
简单的说就是作用域导致此a非彼a。虽然变量名字都是a,但一个适用范围在函数里,另一个适用范围在主函数里。想要实现的话需要声明全局变量。推荐你用vs2013调试一下,看的比较直观。
因为函数参数的传递方式是单向值传递造成的。
调用 chang() 函数时,将实参 a 和 b 的值对应传递给形参 a 和 b,形参 a 和 b获得初值。当 chang() 函数执行结束,返回主函数时,形参 a和b 的内存空间被释放,即形参 a 和 b 不在存在。但是形参的值并没有传递给实参 a 和 b,所以实参 a 和 b 的值仍然是他们的初始值。
举报
指针-C语言的核心,代领大家对c语言有更加深刻的理解
1 回答为什么是先声明a,在i ,最后b
3 回答我的a,b未赋值是为什么不是默认的0?
2 回答为什么第一个p a p b是输出的值第二次输出它的地址呢?
1 回答为啥地址中是a i b这种格式啊。
3 回答那个交换a,b数值的程序