1. 引言
C语言是一门结构化、过程式的编程语言,诞生于1972年,由贝尔实验室的丹尼斯·里奇(Dennis Ritchie)设计。它语法简洁、执行高效、贴近底层硬件,是操作系统、嵌入式系统、编译器等领域的基础语言。理解C语言的结构,是掌握这门语言的第一步。
2. 程序的基本结构
一个C程序由若干部分组成,下面是一个最简单的Hello World程序:
c
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
2.1 预处理指令
以 # 开头的行称为预处理指令,例如 #include <stdio.h> 表示引入标准输入输出头文件。预处理在编译之前执行。
2.2 main函数
main 是程序的入口函数,程序从这里开始执行。一个C程序有且只有一个 main 函数。
2.3 语句与分号
C语言中的每条语句以分号 ; 结尾,例如 printf(...); 和 return 0;。
3. 数据类型
C语言提供了丰富的数据类型,用于描述不同种类的数据。
3.1 基本数据类型
| 类型 | 说明 | 示例 |
|---|---|---|
int |
整型 | int age = 18; |
float |
单精度浮点型 | float pi = 3.14f; |
double |
双精度浮点型 | double e = 2.71828; |
char |
字符型 | char ch = 'A'; |
3.2 变量声明与初始化
c
int count; // 声明
count = 10; // 赋值
double price = 99.5; // 声明并初始化
4. 运算符与表达式
C语言支持丰富的运算符,包括算术、关系、逻辑、位运算等。
4.1 算术运算符
c
int a = 10, b = 3;
int sum = a + b; // 13
int diff = a - b; // 7
int prod = a * b; // 30
int quot = a / b; // 3(整数除法)
int rem = a % b; // 1(取余)
4.2 关系与逻辑运算符
c
int x = 5, y = 8;
int isGreater = (x > y); // 0(假)
int isEqual = (x == y); // 0(假)
int result = (x < y) && (x > 0); // 1(真)
5. 控制结构
控制结构决定了程序的执行流程,包括顺序、选择和循环三种基本结构。
5.1 选择结构
c
int score = 85;
if (score >= 60) {
printf("及格\n");
} else {
printf("不及格\n");
}
5.2 循环结构
c
// for 循环
for (int i = 0; i < 5; i++) {
printf("%d ", i);
}
// while 循环
int j = 0;
while (j < 5) {
printf("%d ", j);
j++;
}
6. 函数
函数是C语言中实现代码复用的基本单元。
c
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(3, 4);
printf("3 + 4 = %d\n", result);
return 0;
}
6.1 函数声明与定义
函数在使用前需要声明(原型),定义则包含函数体实现。
6.2 参数传递
C语言默认采用值传递,函数内部对参数的修改不会影响调用方的变量。
7. 数组与字符串
7.1 数组
c
int numbers[5] = {1, 2, 3, 4, 5};
printf("%d\n", numbers[0]); // 输出 1
7.2 字符串
C语言中字符串以字符数组表示,以 \0 结尾。
c
char name[] = "Alice";
printf("%s\n", name);
8. 指针
指针是C语言的精髓,它存储变量的内存地址。
c
int value = 42;
int *ptr = &value; // ptr 指向 value 的地址
printf("%d\n", *ptr); // 通过指针访问值,输出 42
9. 结构体与联合体
9.1 结构体
c
struct Student {
char name[20];
int age;
};
struct Student stu = {"Bob", 20};
printf("%s %d\n", stu.name, stu.age);
9.2 联合体
联合体所有成员共享同一块内存,大小取最大成员。
c
union Data {
int i;
float f;
};
10. 总结
C语言的结构清晰而严谨,从基本数据类型、运算符、控制结构到函数、指针和结构体,层层递进。掌握这些语言结构,就为后续学习算法、数据结构和系统编程打下了坚实基础。建议读者动手编写并运行上述示例,在实践中加深理解。