C语言篇:语言结构

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语言的结构清晰而严谨,从基本数据类型、运算符、控制结构到函数、指针和结构体,层层递进。掌握这些语言结构,就为后续学习算法、数据结构和系统编程打下了坚实基础。建议读者动手编写并运行上述示例,在实践中加深理解。

相关推荐
闻缺陷则喜何志丹14 分钟前
【c++20】协程与屏障
c++·算法·c++20·携程·屏障
erzong23116 分钟前
Linux操作系统:线程池&踩坑修复
linux·运维·算法
滕州市燕猫虎计算机科技工作室个体工商户18 分钟前
Java,Java NIO,Java NIO2,Java AIO,AsynchronousServerSocketChannel
java·开发语言·nio·aio·nio2
古城小栈24 分钟前
Rust 学习路线,供初学者参考
开发语言·rust
喵了几个咪28 分钟前
GoWind CMS 拆解:给 NL2SQL 上四把锁——智能问数的安全边界
开发语言·后端·安全·微服务·golang·gowind
多弗朗皮卡丘30 分钟前
C++的类型转换
开发语言·c++
alphaTao40 分钟前
LeetCode 每日一题 2026/10/19-2026/10/25
算法·leetcode
FLJwu1 小时前
运动相机图像传感器选型实战|第二篇:参数看着一模一样,为什么骑行录像疯狂果冻、拖影翻车?
android·c语言·开发语言·数码相机·运动相机·oem 量产
驭渊的小故事1 小时前
从 JVM 底层看泛型:泛型擦除、Signature 属性与 Super Type Token 模式
java·开发语言·jvm
Escalating_xu1 小时前
【C语言项目实战】贪吃蛇(下):移动、碰撞与计分,完成一局可玩的游戏
c语言·开发语言·游戏