C语言编程常见错误解析
需积分: 9 8 浏览量
更新于2024-11-17
收藏 38KB DOC 举报
"C语言常见错误,包括未定义变量、分号遗漏、空格误放、数组定义和引用错误、字符与字符串混淆、未初始化的数组元素或指针、数组名与指针变量混淆、不同类型指针混用、指针说明与执行中的*号混淆、形参与局部变量定义混杂等问题"
在C语言编程过程中,经常会遇到一些典型错误,这些错误可能会导致程序无法正常编译或运行。以下是对这些常见错误的详细解析:
1. **未定义变量**:在使用变量前必须先定义。例如,`a=1;` 在此之前没有定义变量`a`,编译器会报错。
2. **分号遗漏或多余**:C语言规定每个语句结束后必须跟一个分号,如 `x=1;`,但有些地方不应加分号,如 `x=1 y=2;` 应改为 `x=1; y=2;`。
3. **空格误放**:在某些特殊符号间不应有空格,如注释符 `/**/` 和比较运算符 `<=`, `>=`, `==`, `!=` 中。
4. **数组定义和引用错误**:数组定义应使用方括号,如 `inta[10];`,而 `inta(10);` 是错误的。多维数组的每维度也要用方括号,如 `int b[5][4];`,而非 `int b[5,4];`。
5. **字符与字符串混淆**:字符常量由单引号包围,如 `'1'`,而字符串常量用双引号,如 `"1"`。字符常量可赋值给字符变量,但字符串常量需赋值给字符数组。
6. **未初始化的数组元素或指针变量**:如 `b=a[5];` 或 `*ptr=i;` 前,应先确保数组`a`和指针`ptr`已正确赋值。
7. **数组名与指针变量混淆**:数组名代表其首地址,不可改变,如 `a++` 是非法的。若要遍历数组,应使用下标操作,如 `a[i]`。
8. **不同类型的指针混用**:如 `int *p1, a=1; float *p2; p1=&a;`,然后 `p2=p1;` 是错误的,因为`p1`指向`int`类型,`p2`指向`float`类型,类型不匹配。
9. **指针说明与执行中的*号混淆**:`*`号在声明指针时表示定义了一个指针变量,而在访问指针所指向的变量时使用。如 `int *p1, i=1;`,应写成 `p1 = &i;` 而不是 `*p1 = &i;`。
10. **形参与局部变量定义混杂**:在函数定义中,形参列表内不应同时定义其他变量,如 `fun(x,y) float x,y,z;` 应只包含形参 `x` 和 `y`,`z` 应在函数体内定义。
理解和避免这些错误是提高C语言编程能力的关键。在编写代码时,要时刻注意变量的定义、语句的结束、类型的匹配以及指针的使用等细节,这将有助于写出更加稳定和可靠的程序。同时,良好的编程习惯,如总是初始化变量,使用清晰的命名规则,以及充分利用编译器的错误提示,都能有效地减少错误的出现。
105 浏览量
2013-04-30 上传
2014-09-11 上传
119 浏览量
2016-08-01 上传
2008-05-26 上传
2021-10-06 上传
2021-10-13 上传
点击了解资源详情
banfangbf
- 粉丝: 0
- 资源: 4
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析