Dev-C ++有什么问题,或者我的代码中是否存在使用引用变量的错误?
#include <stdio.h>
struct P {
int x;
};
int main(int argc, char **argv){
struct P Point[5];
struct P & rPoint;
int i;
for(i=0;i<=4;i++) {
rPoint = Point[i]; // I know. I can use Point[i].x = i. But...
rPoint.x = i;
}
for(i=0;i<=4;i++) {
rPoint = Point[i];
printf("%d\n", rPoint.x);
}
system("pause");
return 0;
}
错误: 9 C:*** \ main.c语法错误在'&amp;'之前令牌
答案 0 :(得分:4)
C ++不允许未分配的引用,因此这是您的错误:
struct P & rPoint;
如果要重新分配,请使用指针。
int main(int argc, char **argv){
struct P points[5];
struct P* point;
int i;
for(i=0;i<=4;i++) {
point = points + i; // or &points[i]
point->x = i;
}
// ...
答案 1 :(得分:2)
C ++引用不起作用。您必须在定义引用时初始化引用。如下所示:
int x = 5;
int &r = x; // Initialise r to refer to x
另外,你不能“重新安置”参考;它总是引用相同的变量。继续上面的例子:
int x = 5;
int y = 10;
int &r = x;
r = y; // This will not re-seat y; it's equivalent to x = y
答案 2 :(得分:2)
错误:9 C: * \ main .c '&amp;'之前的语法错误令牌
除了其他人所说的,你将它编译为C文件,并且在C引用中不存在。如果你想把它编译成C ++,给它一个.cpp扩展名,或者让point
成为一个指针而不是一个引用(实际上,你必须把它作为一个指针,因为你不能重新设置一个引用)。