在 C 语言中,如果想要打印数组的所有元素,常用的有以下 2 种方式。
- 使用 for 循环。
- 使用指针。
使用 for 循环打印数组
在 C 语言中,打印数组最常用最简单的方式,就是使用 “for 循环” 来遍历数组,然后把每个数组元素打印出来。
示例 1:
#include <stdio.h>
int main(void)
{
int arr[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}运行结果如下。
10
20
30
40
50分析:
需要注意的是,直接使用 printf() 函数是无法打印数组 arr 的。比如使用 printf("%d", arr); 一般会导致编译器警告。我们需要通过循环遍历数组的每个元素并逐个打印。
使用指针打印数组
除了 for 循环,还有一种方式就是使用指针来打印数组。对于指针的使用,在后续 “C 指针” 一节中再来详细介绍,这里初学者可以直接跳过。
示例 2:
#include <stdio.h>
int main(void)
{
int arr[5] = {10, 20, 30, 40, 50};
int* p;
p = arr;
while (p < arr + 5)
{
printf("%d\n", *p);
p++;
}
return 0;
}运行结果如下。
10
20
30
40
50分析:
在上面例子中,我们首先声明了一个整型指针 p,然后将数组名 arr 赋值给 p。在 C 语言中,数组名在很多情况下会 “退化” 为指向其首元素的指针。 然后使用 while 循环 遍历数组,直到指针 p 指向数组的末尾(arr + 5)。在每次循环中,使用 *p 来获取指针指向的元素的值并将其打印出来,然后将指针 p 向后移动一位(指向下一个元素)。
打印字符数组(字符串)
对于字符数组,如果它表示一个字符串(以空字符 '\0' 结尾),我们可以使用更简洁的方式来打印,即使用 printf() 函数的 “%s” 格式说明符。
示例 3:
#include <stdio.h>
int main(void)
{
char str[] = "lvyenet";
printf("%s\n", str);
return 0;
}运行结果如下。
lvyenet分析:
“%s” 格式说明符告诉 printf() 函数将给定的地址(这里是字符数组 str 的首地址)开始的连续内存中的字符打印出来,直到遇到空字符 '\0' 为止。
