- 定义
类型 数组名[元素个数]
例如:
int a[10];
char b[10];
double c[10];
由于数组不能动态定义,因此元素个数那里只能是常量或者是常量表达式
-
访问数组中的元素
数组名[下标](下标从0开始)
a[0]; //访问数组中的第一个元素
a[5]; //访问数组中的第六个元素 -
数组的初始化
1、 将数组中所有元素初始化为0,可以这么写:
int a[10]={0}; //事实上这里只是将第一个元素赋值为0
2、如果赋予不同的值,用逗号隔开即可:
int a[10]={1,2,3,4,5,6,7,8,9,10};
3、若只给一部分元素赋值,则未被赋值的元素自动初始化为0:
int a[10]={1,2,3,4,5}; //为前五个元素赋值,其余元素自动初始化为0
4、也可以给出各元素的值,而不指定数组的长度(编译器将根据值的个数自动判断数组的长度):
int a[]={1,2,3,4,5,6,7,8,9,10};
5、指定初始化元素,这样就可以只对数组中的某些指定的元素进行初始化赋值,而未被赋值的元素自动初始化为0:
#include<stdio.h>
int main()
{
int a[10] = {[3]=6,[5]=10,[8]=16};
for (int i = 0; i < 10; i++)
{
printf("%d:%d\n",i, a[i]);
}
system("pause");
}
运行结果:
若是仅声明而不进行初始化,则数组内的元素将会是随机值:
#include<stdio.h>
int main()
{
int a[10];
for (int i = 0; i < 10; i++)
{
printf("%d\n", a[i]);
}
system("pause");
}
运行结果:
在有的地方也见到过有数组长度是可变的,例如:
int n; //字符长度变量
printf("请输入字符长度:");
scanf_s("%d", &n);
char ch[n];
然而在本人所用环境(VS 2017)中是不支持的.