顾名思义,数组是一组相同类型数据的集合。
需要注意的两点是 ①数组存放数据个数为 1个或多个(即存放个数不得为0)
②多个数据的类型是 相同的
数组分为 一维数组 和 多维数组(多维数组常见为二维数组)
数据名 + 数组名称(自己随便取的)[ ] (常量值,用于决定数组大小)
如 int arr [10]
//完全初始化
int arr [ 6 ] ={1,1,9,4,1,0};
//没完全初始化
int arr1 [100]={1,2,3};
默认剩下没初始化的存放 0
//如果你写的是int arr[],没规定多少个数组元素
//那请 务必 一定 要 完 全初始化!!!!
int arr [] = {1,2,3,4,5};
这就是默认其数组元素为5
如图所示,一开始的存放没赋值默认都是0
int arr [ 6 ] ={1,1,9,4,1,0};
去掉数组名就是数组的类型
int a [10] //数组类型不是int!!!
//int是数组元素的类型!!
即 int arr[10] 的类型是 int [10]
同理
char bb [5] //其数组的类型是 char [5]
数组是有下标的 数组下标从0开始
————注意!一个陷阱!
int arr[5]={1,2,3,4,5};
printf("%d\n",arr[4]);
此时运行下标为4的数组arr 出现的是你定义的5!
一维数组在内存中是连续存放的
此处我们建议用循环结构来输入更省事
int main()
{
int arr[5]={0};
int i = 0;
//输入数组的内容
for(i=0;i<5;i++)
{
scanf("%d",& arr[5]);
}
//输出数组的内容
for(i=0;i<5;i++)
{
printf("%d",arr[5]);
}
return 0;
}
int main()
{
int arr[10] = {0};
printf("%zd\n", sizeof(arr));
printf("%zd\n", sizeof(int[10]));//数组类型和数组整体的长度一样欸
printf("%zd\n", sizeof(arr[0]));
return 0;
如图,二维数组这就像把一堆一维数组存放的集合
(just like一维数组的数组哈哈哈哈哈)
数据名 数组名称 [ ] [ ]
如 int arr [5][6]
一维数组和二维数组初始化区别
同样,从0开始
二维数组在内存中存放跟一维一样,是连续存放的
这里我们就可以把其看出三个一维数组
如 arr [3] [4]
我们可以运用这种方法来控制二维存放的不同行
但凡数组,咱都用循环结构来
int main()
{
int arr [3][4];
int i = 0;
//输入
for (i = 0;i < 3;i++)
{
int j = 0;
for (j = 0;j < 4;j++)
{
arr[i][j];
}
}
//输出
for (i = 0;i < 3;i++)
{
int j = 0;
for(j = 0;j < 4;j++)
{
printf("%d ",arr[3][4]);
}
printf("\n");
}
return 0;
}
好嘞,一个下午才写了这么点东西QAQ
感觉还没有写的很全面来着
大概就先记录这些,以后不会了能翻回来看看