C Programming

Courses

C 程序常见错误

Resources

先确认问题发生在哪一步:编译前、编译时,还是程序运行后。复制报错原文,并查看它指出的文件和行号;报错所在行的上一行也可能是原因。

终端找不到编译器

现象: 输入编译命令后,终端提示找不到 gcc 或 cl。

检查: 确认已安装编译器,并按所选工具链的说明打开终端或配置环境变量。安装 VS Code 和 C/C++ 扩展并不会自动安装编译器。可返回VS Code 配置 。

编译器提示缺少分号

现象: 报错中出现 missing ';',或错误位置指向下一条语句。

检查: 看报错行及其上一行的语句末尾是否缺少英文分号 ;,并确认没有输入中文分号 ;。

scanf 的参数类型不匹配

现象: 编译器提示 %d 需要 int *,实际提供了 int。

int n;
scanf("%d", n);  // 错误:这里需要 n 的地址

检查: 对普通 int 变量使用 &n,并核对格式说明符与变量类型是否一致:

scanf("%d", &n);

程序能运行,但整数除法结果不对

现象: 1 / 2 的结果是 0,即使随后赋给浮点变量也是如此。

原因: 两个操作数都是整数时,先进行整数除法。需要小数结果时,让至少一个操作数成为浮点数,例如 1.0 / 2。

更多例子可参考原有的编译与运行错误资料 。