分类: C/C++
2014-10-11 22:59:08
数组是一片连续的内存空间。
数组隐性显示:
int a[] 没初始化打印出来是随机数
int a[5] = {1, 2};后面的元素没初始化,编译器默认是a[5] = {1, 2, 0, 0, 0};
memset (a, 0,
sizeof(a));不叫初始化,而是调用函数来给数组赋0值,低效。可以用a[5] ={0}; 初始化效率高。
数组地址与数组名?
数组名代表数组首元素的地址,数组的地址需要用取地址符&才能得到,数组首元素的地址值与数组的地址值相同,数组首元素的地址a与数组的
地址 &a 是两个不同的概念。
数组名盲点?
数组名指向的是内存中数组首元素的起始位置,数组名是一个常量指针,在表达式中只能作为右值使用。
只有在下列场合数组名不看做常量指针:
1).数组名作为sizeof操作符的参数;2).数组名作为&运算符的参数。
数组名其实并不是指针,在外部声明时不能混淆?
主要因为“指针会寻址,数组不寻址”