以下两对法规之间有什么区别?
int i;
doSomethingWith(i);
和
int i;
doSomethingWith(&i);
答案 0 :(得分:4)
在C中,&是运营商的地址。因此,不要像第一次调用中那样传递i
的副本,而是传递i
或&i
的地址,这意味着该函数可以直接修改它。
该功能如下所示:
void doSomethingWith (int *var);
这意味着它需要一个指针(保存地址的东西)为整数(在本例中为i
)。然后,要直接修改i
,该函数可以执行:
*var = 5;
这是解除引用操作符,它为您提供实际存储在该地址的内容。此调用将为您传递的内存位置& i。
分配5任何C教科书在谈到指针时都应该详细解释这一点。
答案 1 :(得分:2)
在第一个你传递i的值。在第二个中,你传递变量i的地址。
查看有关指针及其类似内容的this视频。
答案 2 :(得分:0)