Dev-C++ 给出 '&' 参考语法错误
Posted
技术标签:
【中文标题】Dev-C++ 给出 \'&\' 参考语法错误【英文标题】:Dev-C++ gives '&' reference syntax errorDev-C++ 给出 '&' 参考语法错误 【发布时间】:2012-03-24 02:15:49 【问题描述】: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 '&' 标记前的语法错误
【问题讨论】:
我不认为有 Dev-C++ 特定的库,重要的是编译器,而对于 Dev-C++,您通常只使用旧版本的 MinGW(这与通常在其他免费且更好的 IDE)。 $ gcc test.cpp test.cpp: In function 'int main(int, char**)': test.cpp:9:20: error: 'rPoint' 声明为引用但未初始化test.cpp:21:22: 错误:“系统”未在此范围内声明 我无法在 mingw 上构建库。该库即将在 Dev-C++ 上打包。有点懒惰:) AFAIK Dev-C++ 只是一个 IDE,背后的编译器是 gcc 并且没有与 Dev-C++ 捆绑的特殊非标准库(但也许我错了)。无论如何,这是 C 和 C++ 的混合体,我会说它是纯 C 语言,使用了 C++ 的一个特性,但没有真正的 C++ 语言;我坚信system("pause")
的使用是一种糟糕而邪恶的编程习惯,即使对于 Windows 程序员也是如此......
你有 devpaks 库吗?无论如何,您不需要特定的 IDE 来使用预编译的动态或静态库。
【参考方案1】:
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;
// ...
【讨论】:
【参考方案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
【讨论】:
【参考方案3】:错误:9 C:*\main.c '&' 标记之前的语法错误
除了其他人所说的之外,您正在将其编译为 C 文件,并且在 C 中不存在引用。如果您想将其编译为 C++,请给它一个 .cpp 扩展名,或者将 point
设为指针而不是引用(实际上,无论如何您都必须将其设为指针,因为您无法重新安装引用)。
【讨论】:
以上是关于Dev-C++ 给出 '&' 参考语法错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Dev-C++ 中制作简单的 Windows 错误消息框?