数组的本质
任何数组, 不论是静态声明还是动态创建的, 所有元素都在内存中都是连续字节存放的,
也就是说保存在一个大块链接的内存区中。
数组元素的下标编号从0开始, 最后一个元素的下标等于元素个数减1。 下标必须是整数或整数的表达式。 通过下标引用一个数组的元素, 在本质上和引用一个类型的变量没有区别, 编译器通过下标值来计算你所引用的元素在内存中的地址。 因此, 在语义上, 下标操作符返回的是一个元素的引用
例如
数据类型 a[4] = 100;
其实, 当你使用"[]"来引用数组元素的时候, 编译器必须把他转换为同类型的指针表达形式, 然后再通过编译。
注意: 数组实现了相同类型对象的集合。
数组的初始化
除了的确没有必要的情况, 都需要对变量进行初始化。
另外数组的初始化还有这样一个原则: 当初始值的元素数量不足时, 会自动用0对剩余的元素进行初始化、
注意: 不要在程序中直接使用数值。对复制语句进行判定的时候。假如是 int a[2] = {0, 1, 2, 3}这样是错误的, 数组元素可以少但是不能多应该改成 int a[2] = {0, 1}
简单的例子
/*
* 编写时间: 2018/7/24
* 编写作者: 流光飞霞
* 程序功能: 数组简单的例子
* 程序版本: V2.33
**/
# include <stdio.h>
int main()
{
int i;
/* 大括号内的就是初始化, j[6]代表有6个元素 */
int j[6];
for ( i = 0; i < 6; i++ )
{
printf("请输入第%d为同学的成绩: ", i+1);
scanf("%d", &j[i]);
printf("第%d为同学的成绩是: %2d\n", i+1, j[i]);
}
return 0;
}
例子_1
/*
* 编写时间: 2018/7/24
* 编写作者: 流光飞霞
* 程序功能: 数组简单的例子
* 程序版本: V2.33
**/
# include <stdio.h>
int main()
{
int i = 100;
int a[10] = {0, 1, 2, 3};
for ( i = 1; i < 10; i++ )
printf("%d\n", a[i]);
return 0;
}