c语言函数调用问题

[复制链接]
查看11 | 回复3 | 2011-2-14 20:38:09 | 显示全部楼层 |阅读模式
呵呵 c的值当然不会变是这样的 这个函数是个 值传递函数对吧 (没有牵扯到地址传递啊)a是形参是个临时变量 (函数调用后内存 单元释放)c传给a只是类似于这个操作a=c;只是把值 copy给力a 而已 c 没变然后 f函数 对a进行操作这并不影响c的值啊(c和a在两个不同的内存单元啊)要知道 值传递函数形参的改变 是不会影响实参的值的f函数内 只是 对a 进行操作啊 (a只是个c的拷贝而已 怎么会影响到c的值呢)结论:c的值是不会变的这下应该懂了吧?希望有帮助...
回复

使用道具 举报

千问 | 2011-2-14 20:38:09 | 显示全部楼层
这是一个变量作用域的问题:你的变量c的作用域在main函数体中,变量a的作用域在f函数体中,b的作用域也在f函数体中;你调用函数f(c),是将c的值赋给了变量a,变量a的值无论怎么改变都不会影响到变量c;而且出了函数f后,a和b就是去意义了,c当然就不会改变了;如果你想通过函数调用改变c的值,那么函数f的定义要改下,void f(STU& a...
回复

使用道具 举报

千问 | 2011-2-14 20:38:09 | 显示全部楼层
C语言的函数参数是按值传递的,结构变量同整型变量一样。代码中的c是实参,传给f只是拷贝了一份。f中的a有其自己的地址空间,对a的改变不会改变c的值。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行