下面两对语句有什么区别?
int i;
doSomethingWith(i);
和
int i;
doSomethingWith(&i);
最佳答案
在 C 中,& 是寻址运算符。因此,不像在第一次调用时那样传递 i
的副本,而是传递 i
的地址,或 &i
,这意味着函数可以直接修改。
函数看起来像这样:
void doSomethingWith (int *var);
这意味着它需要一个指向整数(在本例中为 i
)的指针(保存地址的东西)。然后,直接修改i
,函数可以做:
*var = 5;
这是取消引用运算符,它为您提供实际存储在该地址的内容。此调用会将 5 分配给存储在您使用 &i 传递的内存位置的内容。
任何 C 教科书在谈到指针时都应该对此进行非常详细的解释。
关于objective-c - 将 i 和 &i 传递给函数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10165456/