一·一维数组
1·概念
用于存放一组相同类型元素的集合。
2·创建和初始化
type arr_name[常量值] ex: int shu[10] , char zu[5]
类型 名字 大小
type arr_name[常量值] = {x ,x ,x ……x}; (常量值可省略)
ex: int zu[5] = { 1, 2, 3, 4, 5 } ; 完全初始化
int zu[5] = { 2 } ; 不完全初始化 ,除2外,其余四个默认为0
3·使用
1)·数组下标
即数组元素的编号,有n个元素,则有n-1个下标(从0开始)
下标引用操作符 : [ ] , 即arr_name[下标]
2)·输入
通过循环输入,如下:
int arr[10]={0};
int a=0;
for(a=0;a<10;a++)
{
scanf("%d",&arr[a])
}
4·在内存中的存储
连续存放
5·sizeof计算数组元素个数
sizeof运算符的单位是字节
sizeof(arr_name)计算整个数组的大小
sizeof(arr_name[下标])计算一个元素的大小
所以,二者相除即为数组元素个数,即sizeof(arr_name) / sizeof(arr_name[下标])
二·二维数组
1·概念
把一维数组作为数组的元素
2·创建和初始化
type arr_name[常量值1][常量值2]; ex:int shu[3][5] , char zu[2][4]
行 列
type arr_name[常量值1][常量值2] = {x ,x ,x ,x ……x}; (可省略行,不可省略列)
ex: int zu[3][4] = {1 ,2 ,3 ,4 ,2 ,3 ,4 ,5 ,3 ,4 ,5 ,6 }; 完全初始化
int zu[3][4] = {1 ,2 }; 一行 不完全初始化
int zu[3][4] = { {1 ,2 ,3 } {2 ,3 } {3 ,4 } }; 三行
3·使用
1)·下标
行,列均从0开始。 arr[行-1][列-1]
2)·输入
通过循环输入,如下:
int arr[3][5] = {0};
int a = 0;
int b = 0;
for(a=0;a<3;a++)
{
for(b=0;b<5;b++)
{
scanf("%d",&arr[a][b]);
}
}
3)·输出
通过循环输出,如下:
int c,d;
for(c=0,c<3,c++)
{
for(d=0;d<5;d++)
{
printf("%d",arr[c][d]);
}
}
4·在内存中的存储
连续存放, 一行存完,再存下一行
5·C99中的变长数组
使用变量指定数组大小,但数组不可初始化。(VS不支持)
如下:
int n=a+b;//int n;
int arr[n];