跳到主要内容

04 数组 字符串

同类型数据放一起

1. 数组​

图片
int value[4] = {1, 3, 6, 9};//数组初始化
  • int value[4] 中的 [4] 表示可以存 4 个整数。

  • 元素的编号叫下标,从 0 开始,所以有效下标是 0、1、2、3。

2. 遍历​

数组下标可以使用变量。让 i 从 0 走到 3,就能依次访问每个元素:

#include <stdio.h>

int main(void)
{
int value[] = {1, 3, 6, 9};

for (int i = 0; i < 4; i++) {
printf("%d\n", value[i]);
}

return 0;
}
提示

也可以这样求数组中元素的数量:

sizeof(value) / sizeof(value[0]);

sizeof(value) 是整个数组占的字节数,sizeof(value[0]) 是一个元素占的字节数,相除就是元素个数。

3. 字符串​

图片

要保存 Hello 这五个字母,可以写:

char text[] = "Hello";
printf("%s\n", text);
  • 它实际保存了6个字符:'H'、'e'、'l'、'l'、'o'、'\0'。最后的 '\0' 是结束标记。

  • %s 从开头输出字符,遇到 '\0' 就停止。

4. 二维数组​

图片

二维数组可以按行、列来理解:

int table[2][3] = {
{1, 2, 3},
{4, 5, 6}
};

//双层for循环 遍历输出二维数组
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d\n", value[i][j]);
}
}
  • [2][3] 表示 2 行、每行 3 个元素。两个下标同样从 0 开始。

  • table[1][2] 就是第二行、第三列。

  • 它在内存中仍然连续排列:先第一行,再第二行。

练习

用字符数组输出字符串

定义字符数组 text,保存 "Hello, STM32!",再用 printf 输出它。

示例输出

Hello, STM32!
提示

用 char text[] = "Hello, STM32!"; 定义数组,输出字符串用 %s。

参考代码
main.c
#include <stdio.h>

int main(void)
{
char text[] = "Hello, STM32!";
printf("%s\n", text);
return 0;
}
代码
正在准备编辑器…
运行结果