文章目录
1.一维数组的创建和初始化
1.1一维数组的创建
- 数组是同类型元素的集合,其创建方式为:
//元素类型 数组名 [常量表达式]
int arr[10];
float arr[10];
double arr[10];
- 在[ ]中要使用常量,不可以使用变量。
- [ ]中的常量表示数组中的元素个数。
1.2 一维数组的初始化
- 初始化的意思就是给数组一些合理的初始值。
//数组的初始化
int arr[10] = { 2, 3, 4, 5 };//不完全初始化
float arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
double arr[10] = { 1, 'a', 3, 'b', 5, 'c', 7, 8, 9, 0};
- 不完全初始化:在初始化时给数组的初始值小于指定元素的个数,未初始化的部分默认为0。
- 在初始化时可以不指定元素个数,元素的个数取决于初始化的内容。
1.3一维数组的使用
- [ ]表示数组的下标索引
int arr[5] = {1, 2, 3, 4, 5};
printf(“%d”,arr[0]);
数组是由下标来进行访问的下标从0开始,以此类推。
#include <stdio.h>
int main()
{
//数组的使用
int arr[10] = { 0 };//数组的不完全初始化
//计算元素的个数
int sz = sizeof(arr) / sizeof(arr[0]);
//sizeof()是用来计算数组大小的
//用整个数组来除以单个元素的大小,即可得到数组的元素个数
int i = 0;
for (i = 0; i < 10; i++)
{
arr[i] = i;//给数组元素初始化为数字1到9
}
//输出数组内容
for (i = 0; i < 10; i++)
{
printf("%d", arr[i]);
}
return 0;
}
1.4一维数组在内存中的存储
- 我们先看代码
#include<stdio.h>
int main()
{
int i = 0;
int arr[5] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
printf("&arr[%d] = %p\n", i, &arr[i]);
}
return 0;
}
-
由此可以看出数组元素的存储地址是由于低地址到高地址。
-
数组在内存中是来连续存放的。
-
因为该数组的元素类型为整形,所以一个元素占四个字节。
2.二维数组的创建和初始化
2.1二维数组的创建
//数组创建
int arr[3][4];
char arr[3][5];
double arr[2][4];
- 和一维数组大同小异,二维数组有了行和列的概念。
- 前面的 [常量 ] 为行,后面的 [常量 ] 为列。
- 二维数组也可以理解为数组的数组。
2.2二维数组的初始化
- 二维数组的初始化行可以省略,列不可以省略
//1
int arr[2][3] = { 1, 2, 3 };
//2
char arr[2][3] = { {1, 2, 3},{4, 5, 6} };
//3
double arr[][3] = { {1, 2, 3},{4, 5, 6} };
2.3二维数组的使用
- 同样是靠下标索引,就不过多赘述了。
#include<stdio.h>
int main()
{
int arr[3][4] = {0};//不完全初始化
int i = 0;
for (i = 0; i < 3; i++)//给元素赋值
{
int j = 0;
for (j = 0; j < 4; j++)
{
arr[i][j] = i * 4 + j;
}
}
for (i = 0; i < 3; i++)//打印数组
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
return 0;
}
2.3二维数组在内存中的存储
#include<stdio.h>
int main()
{
int arr[3][4] = {0};
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("&arr[%d][%d] = %p\n",i, j, &arr[i][j]);
}
printf("\n");
}
return 0;
}
- 由图可知二维数组在内存中也是连续存储的。
总结:
数组的基本概念和其使用方法,让我们对数组有了基本的认识
文章至此,感谢大家的观看。
结语:希望它能带给大家一些收获,同时欢迎大家指出我不对的和希望我改进的地方,
在评论区告诉我哦。感谢!感谢!,最后求点赞,点赞和关注是我更新的最大动力哦