C有引用吗?

时间:2010-11-29 16:19:20

标签: c reference

C有引用吗?即在C ++中:

void foo(int &i)

2 个答案:

答案 0 :(得分:40)

不,它没有。它有指针,但它们并不完全相同。

特别是,C中的所有参数都是通过值传递的,而不是像C ++中那样可以通过引用传递。当然,您可以通过指针进行模拟传递引用:

void foo(int *x)
{
    *x = 10;
}

...

int y = 0;
foo(&y); // Pass the pointer by value
// The value of y is now 10

有关指针和引用之间差异的更多详细信息,请参阅this SO question。 (请不要问我,因为我不是C或C ++程序员:)

答案 1 :(得分:16)

从概念上讲,C有引用,因为指针引用其他对象。

从语法上讲,C没有C ++那样的引用。