C 打印数组

在 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' 为止。

上一篇: C 二维数组

下一篇: C 字符串

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号