数组的概念
数组是相同类型的变量的有序集合
数组的大小
数组在一片连续的内存空间中存储元素
数组元素的个数可以显示或隐式指定
int a[5] = {1,2};
int b[] = {1,2};
问题:
1.a[2],a[3],a[4]的值是多少?
答: 0
2.b包含了多少个元素
答:2个
数组地址与数组名
数组名代表数组首元素的地址
数组的地址需要用取地址符&才能得到
数组首元素的地址值与数组的地址值相同
数组首元素的地址与数组的地址是两个不同的概念
例子:
int main()
{
int a[5] = {0};
printf(" a = %p\n",a); // 数组首元素的地址
printf(" &a = %p\n",&a);//
printf(" a[0] = %p\n",&a[0]); // 数组首元素的地址
}
数组名的盲点
数组名可以看做一个常量指针
数组名“指向”的是内存中数组首元素的起始地址位置
数据名不包含数组的长度信息
在表达式中数组名只能作为右值使用
只有在下列场合中数组名不能看做常量指针
数组名作为sizeof操作符的参数
数组名作为&运算符的参数