【发布时间】:2020-01-17 12:47:28
【问题描述】:
哪些函数调用是通过值传递的,哪些是通过引用传递的?
int *a;
int b;
int **c;
f(a);
g(&b);
h(*c);
只是简单的例子,我只是对指针以及如何判断它们如何传递感到困惑。
【问题讨论】:
-
在C语言中,所有的函数参数都是按值传递的。只是有些值可能是指针。
-
那么所有这些都是按值传递的?
-
形式上,C 没有通过引用传递。它只有按值传递。如果您显式传递一个指针,则可以模拟通过引用传递(或者,如果您隐式传递一个指针,则可以通过尝试传递一个数组并将数组的值衰减为指向它的指针第一个元素)。所以更多的问题是您认为哪些参数是通过引用传递的。
-
是的,它们都通过值传递
int *。 -
好的,谢谢,但是&不代表是通过引用传递的吗?
标签: c function pointers reference