c 数组定义的几种方式

后端 (40) 2023-10-31 13:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说c 数组定义的几种方式,希望能够帮助你!!!。

c 数组定义的几种方式_https://bianchenghao6.com/blog_后端_第1张

C语言学习

数组定义

用于存放指定类型的数据,一旦确定是不能更改的,因为数组声明后,会在内存中开辟一块连续的区域,来存放这些数据,所以类型和长度必须在一开始就明确。

数据的下标从 0 开始,0 表示第一个元素,1 表示第二个元素,后续元素以此类推!

c 数组定义的几种方式_https://bianchenghao6.com/blog_后端_第2张

数组定义

数组的初始化

int a[10];   // 直接声明int类型数组,容量为10,随机值

int b[10] = {1, 2, 4};   // 声明后,可以赋值初始值,使用{}囊括,不一定需要让10个位置都有初始值,比如这里仅仅是为前三个设定了初始值,注意,跟变量一样,如果不设定初始值,数组内的数据并不一定都是0

int c[10] = {1, 2, [4] = 777, [9] = 666}; //我们也可以通过 [下标] = 的形式来指定某一位的初始值,注意下标是从0开始的,第一个元素就是第0个下标位置,比如这里数组容量为10,那么最多到9

int d[] = {1, 2, 3};  //也可以根据后面的赋值来决定数组长度

示例一:输出12个月的月份,每个月的天数

#include <stdio.h>

int main() {
    int arr[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    for (int i = 0; i < 12; i++) {
        int days = arr[i];   // 直接通过数组 名称[下标] 来访问对应的元素值,下标是从0开始的,不是1
        printf("2022年 %d 月的天数是:%d 天\n", (i + 1), days);
    }
    return 0;
}

示例二:对数组中存储的数据进行修改

#include <stdio.h>

int main() {
    int arr[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    arr[0] = 30;			 //  1 月份的天数进行修改
    arr[10] = 31;			//  11 月份的天数进行修改
    for (int i = 0; i < 12; i++) {
        int days = arr[i];   // 直接通过数组 名称[下标] 来访问对应的元素值,下标是从0开始的,不是1
        printf("2022年 %d 月的天数是:%d 天\n", (i + 1), days);
    }
    return 0;
}

二维数组

数组不仅仅只可以有一个维度,我们可以创建二维甚至多维的数组,简单来说就是,存放数组的数组。

例如:存放2020-2022年每个月的天数,那么此时用一维数组肯定是不方便了,我们就可以使用二维数组来处理

//2020年是闰年,2月有29天
int arr[3][12] = {{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, 
                 				 {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
                 				 {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};

输出2020年2月份的天数:

#include <stdio.h>

int main() {
    int arr[3][12] = {{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, 
                      				{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
                      				{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
    // 比如现在我们想要获取2020年2月的天数,首先第一个是[0]表示存放的第一个数组,第二个[1]表示数组中的第二个元素
    printf("%d", arr[0][1]);  
    
    // 二维数组的遍历
    for (int i = 0; i < 3; ++i) {
        printf("一维数组展示:");
        for (int j = 0; j < 12; ++j) {
            printf("%d ", arr[i][j]); } printf("\n");
    }
    return 0;
}

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。