C 教程

C 教程 C 语言简介 C 下载安装和环境配置 C 快速入门 C 语法 C 输出 C 注释 C 变量 C 数据类型 C 常量 C 运算符 C 布尔值 C If...Else 语句 C Switch 语句 C While 循环 C For 循环 C Break/Continue 语句 C 数组 C 字符串 C 用户输入 C 内存地址 C 指针

C 函数

C 函数 C 函数参数 C 作用域 C 函数声明 C 递归 C 数学函数

C 文件

C 创建文件 C 写入文件 C 读取文件

C 结构体

C 结构体 C 嵌套结构体 C 结构体和指针 C 联合体 C typedef

C 枚举

C 枚举

C 内存

C 内存管理

C 错误

C 错误 C 调试 C 空值 C 错误处理 C 输入验证

C 更多

C 日期 C 随机数 C 宏 C 代码组织 C 存储类 C 位运算符 C 固定宽度整数

C 项目

C 项目

C 参考资料

C 参考资料 C 关键词 C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C 标准库参考

C 标准库 - 参考手册 C 标准库 - <assert.h> C 标准库 - <ctype.h> C 标准库 - <errno.h> C 标准库 - <float.h> C 标准库 - <limits.h> C 标准库 - <locale.h> C 标准库 - <math.h> C 标准库 - <setjmp.h> C 标准库 - <signal.h> C 标准库 - <stdarg.h> C 标准库 - <stddef.h> C 标准库 - <stdio.h> C 标准库 - <stdlib.h> C 标准库 - <string.h> C 标准库 - <time.h>

C 实例

C 语言实例 C 经典100例 C 编译器 C 测验


C error 错误

错误

即使是经验丰富的 C 开发人员也会犯错。关键在于学习如何发现并修复它们!

这些页面涵盖了常见错误和有用的调试技巧,帮助您了解问题所在以及如何修复它。


常见编译时错误

编译时错误是指导致程序无法编译的错误。

1) 缺少分号:

示例

#include <stdio.h>

int main() {
  int x = 5
  printf("%d", x);
  return 0;
}

结果:

error: expected ',' or ';' before 'printf'
亲自试一试 »

2) 使用未声明的变量:

示例

#include <stdio.h>

int main() {
  printf("%d", myVar);
  return 0;
}

结果:

error: 'myVar' undeclared
亲自试一试 »

3) 类型不匹配(例如,将字符串赋值给整数):

示例

#include <stdio.h>

int main() {
  int x = "Hello";
  return 0;
}

结果:

错误:初始化时未进行类型转换,指针被初始化为整数
亲自试一试 »

常见运行时错误

运行时错误是指程序编译通过但崩溃或运行异常的情况。

1) 除以零:

示例

#include <stdio.h>

int main() {
  int x = 10;
  int y = 0;
  int result = x / y;
  printf("%d\n", result); // not possible
  return 0;
}

2) 访问数组越界元素:

示例

#include <stdio.h>

int main() {
  int numbers[3] = {1, 2, 3};
  printf("%d\n", numbers[8]); // 元素不存在
  return 0;
}

3) Using freed memory:

示例

#include <stdio.h>
#include <stdlib.h>

int main() {
  int* ptr = malloc(sizeof(int));
  *ptr = 10;
  free(ptr);
  printf("%d\n", *ptr); // 未定义行为——访问已被释放的内存
  return 0;
}

避免错误的良好习惯

  • 始终初始化变量
  • 使用有意义的变量名
  • 保持代码简洁,并使用缩进来保持代码条理清晰
  • 保持函数简短且功能明确
  • 检查循环或条件语句是否按预期运行
  • 仔细阅读错误信息——它们通常会准确地告诉你问题所在

在下一章中,你将学习如何调试代码——如何查找和修复 C 程序中的错误。