跳转至

第 2 章:流程、数组与字符串

📋 本章概览

项目 内容
学习时长 40 分钟
核心概念 条件、循环、数组、字符串、边界
核心比喻 数组像编号连续的储物柜,字符串是以结束标记收尾的标签
实践任务 遍历数组并统计字符串内容
难度等级 ★★☆☆☆

2.1 流程控制

for (int i = 1; i <= 5; i++) {
    printf("%d\n", i);
}

C 的 ifforwhile 和其他语言中的控制结构相似,但边界和内存访问需要更谨慎。

2.2 数组

int scores[3] = {80, 92, 76};
int total = 0;

for (size_t i = 0; i < 3; i++) {
    total += scores[i];
}

数组下标从 0 开始。访问 scores[3] 已经越过数组末尾,编译器不一定能替你发现。

2.3 字符串

#include <string.h>

char name[32] = "Nanna";
printf("%zu\n", strlen(name));

C 字符串以 \0 结尾。数组长度必须为字符串内容预留结尾字符的空间。

✏️ 课后练习

实现一个函数,接收整数数组和长度,返回最大值。再实现一个函数,统计字符串中元音字母的数量。

✅ 验证步骤

用包含 3 个元素的数组运行程序,确认下标从 0 开始;再检查访问末尾之外的位置,说明为什么这是未定义行为。

📝 本章总结

  • C 的数组下标从 0 开始。
  • 循环边界必须与数组长度保持一致。
  • C 字符串以结束字符收尾,缓冲区要预留结束字符。

🔮 下一章预告

下一章会把“数据在哪里”这个问题具体化,学习指针、地址和动态内存。