C语言学习
数组定义
用于存放指定类型的数据,一旦确定是不能更改的,因为数组声明后,会在内存中开辟一块连续的区域,来存放这些数据,所以类型和长度必须在一开始就明确。
数据的下标从 0 开始,0 表示第一个元素,1 表示第二个元素,后续元素以此类推!
数组定义
数组的初始化
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;
}