C有引用吗?即在C ++中:
void foo(int &i)
答案 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 ++那样的引用。