【发布时间】:2011-12-07 16:50:57
【问题描述】:
我正在维护一些 C 代码,这些代码是由我最后一份工作的人编写的。关于通过引用传递的情况出现了。这是我正在使用的一个简短的、人为的示例:
static int b;
void SetToTen(int *a){
b = 10;
/* >>>>>>> Need to set a equal to b on this line <<<<<<<< */
return;
}
int main{
int a = 0;
SetToTen(&a);
/* Now a should be equal to 10*/
.
.
.
return 0;
}
在 SetToTen 函数中,我可以这样写:
*a = b;
或
a = &b;
我认为这两个在功能上是等效的(其中任何一个都等于 10。)但我的问题是:是否有任何与另一个相关的偷偷摸摸的微妙之处?具体来说,如果我使用 a = &b 是否意味着如果我将来更改 b,a 也会更改?如果我使用 *a = b 不是这样吗?
想法/沉思/评论将不胜感激。
【问题讨论】:
标签: c pass-by-reference