C语言编程常见错误解析

需积分: 9 2 下载量 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语言编程能力的关键。在编写代码时,要时刻注意变量的定义、语句的结束、类型的匹配以及指针的使用等细节,这将有助于写出更加稳定和可靠的程序。同时,良好的编程习惯,如总是初始化变量,使用清晰的命名规则,以及充分利用编译器的错误提示,都能有效地减少错误的出现。