"在函数参数中传递全局变量时,是通过引用还是值传递?"
它按值传递.以下代码显示了这种情况:
#includeint global = 5; void foo(int bar){ bar = 6; printf("bar = %d\nglobal = %d", bar, global); } int main(){ foo(global); return 0; }
输出是:
bar = 6
全球= 5
在此代码global
作为参数传递foo
,我们调用此参数bar
.因此,在一开始global
并bar
都具有值5.两个不同的变量,但随后bar
被分配值6,因为争论被值所引用,global
保持在5.
要通过引用传递变量,请使用指针:
#includeint global = 5; void foo(int *bar){ *bar = 6; printf("bar = %d\nglobal = %d", *bar, global); } int main(){ foo(&global); return 0; }
现在的输出是:
bar = 6
全球= 6