数组本质
- 数组是相同类型的变量的有序集合
- 数组名代表数组首元素的地址
int a[5]={0};
,a和&a的值相同,但是含义有区别- a代表数组首元素地址;&a表示数组的地址
- 数组名可以看做一个常量指针
- 在表达式中数组名只能作为右值使用
- 只有在下列场合中数组名不能看做常量指针
- 数组名作为sizeof操作符的参数
- 数组名作为&运算符的参数
当给一个指定大小的数组赋一个初始值时,剩下的别的未被初始化的数组值会被赋予零。
要将数组初始化为零的较为简单地方法:
int a[100] ={0x00};
获取数组元素的个数:
int a[5]={0x00};
int b[]={1,3};
c = sizeof(a)/sizeof(*a);//c=5
d = sizeof(b)/sizeof(*b);//d=2
小结:
数组是一片连续的空间
数组的地址和数组首元素的地址,值相同,意义不同
数组名在大多数情况下被当成常量指针处理
数组名其实并不是指针,在外部声明时不能混淆