1.48、一个函数f(int a,int b),其中a和b的地址关系是什么?
形参a
和b
在函数栈帧中各自占有独立的内存空间,它们的地址是不同的,且与调用函数时实参变量的地址无关。
a
和b
是实参值的副本。函数内部对a
和b
的修改不会影响实参的值。
形参a
和b
的地址是函数栈帧中连续或相邻的(具体取决于编译器的栈布局),但它们的地址不会与实参的地址相同。
简而言之,f(int a, int b)
中a
和b
是两个独立的局部变量,地址不同,且与实参地址无关,属于值传递机制的典型表现。
如果想让函数参数的地址与实参地址一致(即操作实参本身),应使用指针传递(如f(int* a, int* b)
)或引用传递(如f(int& a, int& b)
),这两种方式传递的是实参变量的地址或别名,函数内对参数的修改会反映到实参上。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/1348
文章版权归作者所有,未经允许请勿转载。
THE END