1. 数据类型与变量
C语言提供了多种数据类型,包括整型(int)、字符型(char)、浮点型(float/double)等。正确使用这些数据类型是编写高效程序的基础。
1.1 整型变量
int a = 10;
int b = -5;
1.2 字符型变量
char c = 'A';
1.3 浮点型变量
float f = 3.14f;
double d = 2.718281828459045;
2. 控制结构
控制结构决定了程序的执行流程。C语言支持顺序结构、选择结构(如if-else语句)和循环结构(如for、while循环)。
2.1 选择结构
if (a > b) {
printf("a大于b\n");
} else if (a < b) {
printf("a小于b\n");
} else {
printf("a等于b\n");
}
2.2 循环结构
for (int i = 0; i < 10; i++) {
printf("%d\n", i);
}
3. 函数
函数是C语言中模块化编程的关键。通过定义和调用函数,可以将复杂的任务分解成更小、更易管理的部分。
3.1 函数定义
int add(int x, int y) {
return x + y;
}
3.2 函数调用
int result = add(5, 3);
printf("结果是:%d\n", result);
4. 指针
指针是C语言中最难掌握的概念之一,但也是最强大的特性之一。指针允许程序员直接访问内存地址,从而进行更底层的控制。
4.1 指针定义
int *ptr;
4.2 指针赋值
ptr = &a;
4.3 指针解引用
printf("a的值是:%d\n", *ptr);
5. 数组与字符串
数组是存储同类型数据的集合,字符串是字符数组的特殊形式。
5.1 数组定义
int arr[5] = {1, 2, 3, 4, 5};
5.2 字符串定义
char str[] = "Hello, World!";
6. 结构体与联合体
结构体允许将不同类型的变量组合在一起形成新的数据类型,联合体则是在同一内存空间内可以存放不同类型的数据。
6.1 结构体定义
struct Person {
char name[50];
int age;
};
6.2 联合体定义
union Data {
int i;
float f;
};
7. 预处理器
C语言预处理器处理#include指令,引入头文件,进行宏定义和条件编译。
#include <stdio.h>
#define PI 3.14159265358979323846
8. 内存管理
C语言提供了malloc()和free()函数来动态分配和释放内存,学习者需要了解如何正确地管理内存,避免内存泄漏。
int *ptr = (int *)malloc(sizeof(int));
if (ptr != NULL) {
*ptr = 10;
free(ptr);
}
9. 错误处理
在C语言中,错误处理通常依赖于返回值和全局变量errno。
if (fopen("file.txt", "r") == NULL) {
perror("打开文件失败");
}
通过掌握这些经典套路,你可以更好地学习C语言编程,提高编程能力。