C中的参考文献

时间:2010-01-13 14:54:48

标签: c++ c reference

  

可能重复:
  Passing pointer argument by reference under C?

引用变量是C ++概念吗?它们是否可用于C?如果在C中可用,为什么我的代码会出现编译错误?

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a = 10;
  int b = 20;
  int &c = a;
  int &d = b;
  return 0;
}

输出:

bash-3.2$ gcc test.c
test.c: In function `main':
test.c:12: error: parse error before '&' token

为什么?

7 个答案:

答案 0 :(得分:11)

C没有引用作为类型。 '&amp;'在C中仅用于获取变量的地址。它不能以您尝试在C中使用它的方式使用。

答案 1 :(得分:6)

  1. 这是C ++上的一个概念(但不仅仅是)
  2. 不,它在标准C中不可用。
  3. 见1和2. 见* 1和* 2.

答案 2 :(得分:6)

你不能用它来声明变量:

int &c = a;

运营商&amp;用于获取变量的内存地址。所以,你可以写一下例如:

int a = 10;
int *c;
c = &a;

答案 3 :(得分:4)

通过引用传递在C中不可用,而是使用简单的指针。

答案 4 :(得分:2)

引用仅是C ++概念。在C中,您只能使用指针。

答案 5 :(得分:2)

已经过了一段时间,但看起来你正试图将c的地址分配给a的值。

更正:a的值为c的地址。 (感谢Chinmay Kanchi指出这一点。)

答案 6 :(得分:1)

不,引用只是C ++。