一、数组的概念
数组是一组相同类型元素的集合,可以存放在一个或多个相同类型的数据。
二、一维数组的创建和初始化
2.1、数组的创建
type(数组的类型) arr_name(数组名)[常量值(指定数组的大小)];
eg:int arr[4]; char arr1[20];
存放在数组中的值成为元素,数组在创建的时候可以指定数组的长度和数组的元素类型。
2.2、数组的初始化
int arr[5]={1,2,3,4,5}; 完全初始化
int arr1[6]={1}; 第一个元素初始化为1,剩余的元素默认初始化为0’
int arr2[3]={1,2,3,5,6}; 错误溢出
三、一维数组的使用
3.1、数组的下标
数组的下标从0开始,下标就相当于元素的编号,假如下表为n,那么最后一个元素的下标就为n-1.
eg:int arr={1,2,3,4,5,6,7};
元素:1,2,3,4,5,6,7
下表:0,1,2,3,4,5,6
'[]'是下标引用操作符
#include<stdio.h>
int main(){
int arr[8]={1,2,3,4,5,6,7,8};
printf("%d\n",arr[3]); //答应出来为4
printf("%d\n",arr[6]); //答应出来为7
return 0;
}
3..2、数组元素的打印
#include<stdio.h>
int main(){
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
for(i=0;i<10;i++)
printf(" %d",arr[i]);
return 0;
}
3.3数组的输入
#include<stdio.h>
int main(){
int arr[10]={0};
imt i=0;
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<10;i++)
{
printf(" %d",arr[i]);
}
return 0;
}
四、一维数组在内存中的存储
仔细观察可的发现,俩个地址之间相差4,数组在内存中的存储是连续的
五、sizeof计算数组的个数
#include<stdio.h>
int main(){
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",sizeof(arr)); //计算的是数组的大小,单位是字节
printf("%d\n",sizeof(arr[0])); //计算单各元素的大小
printf("%d\n",sizeof(arr)/sizeof(arr[0])); //计算元素的个数
return 0;
}
六、二维数组的创建
type(数组的类型) arr_name(数组名)[常量值(指定数组的大小)][常量值];
eg:int arr[4][[6]; char arr1[20][4];
七、二维数组的初始化
7.1不完全初始化
int arr1[3][2]={1,2,3,4}; int arr2[3][2]={0}; int arr3[3][2]={{1},{2},{33}};
0 | 1 | 2 |
0 | 1 | 2 |
1 | 3 | 4 |
2 | 0 | 0 |
0 | 1 | 2 |
0 | 0 | 0 |
1 | 0 | 0 |
2 | 0 | 0 |
0 | 1 | 2 |
0 | 1 | 0 |
1 | 2 | 0 |
2 | 3 | 3 |
7.2完全初始化
int arr[3][2]={1,2,3,4,5,6};
7.3初始化时可以省略行但不能省略列
int arr1[][2]={1,1,1} //2行
int arr1[][2]={1,1} //1行
int arr1[][2]={{1,1} , {1},{0} //3行