所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

C语言函数传入参数为什么会出现原本的数值和传入后的数值不一样这样的错误,明明应该没有溢出?

发布时间:2020-04-15 16:53:21

资讯分类:c语言  数值  函数  溢出  指针  变量  的是
C语言函数传入参数为什么会出现原本的数值和传入后的数值不一样这样的错误,明明应该没有溢出?

1 所有的参数传递,都是传递值的拷贝。(如果想知道为什么,去学习编译原理的函数调用的参数压栈和出栈对应内容)。2 C传指针进去,其实也是把这个指针值按拷贝传送进去。但是因为指针值指向一块外部内存空间(其实更多是堆空间,或外层栈变量空间),所以感觉可以在函数里改变外部变量。其实本质还是按拷贝传递,只是传递进去的是一个访问变量的渠道。因此,如果我们希望函数内能改变外部的指针值,往往传进去的是指针变量的指针。呵呵,很多初学C的程序员,对**非常难理解。

留言与评论(共有 0 条评论)
   
验证码:
Top