shangs00 2020-04-15
在C++中,数组名其实是 一个指向数组第一个元素的常量指针。
在之前讲数组的博客(C++——一维数组 )中提到过,数组在内存中是线性结构。你可以想像有一个羽毛球筒(就是装羽毛球那个长长的盒子),假设里面最多可以装五个羽毛球,开口的一端是末端。那么可以把这个模型看成是一个数组,数组的大小为5(再大就装不下了)。
假设我们声明一个数组:
int list[6] = {11, 12, 13, 14, 15, 16};
那么这个数组在内存中存放的方式为:
我们可以用指针的方式来访问数组的值,如:
C++允许指针加或者减一个整数,表示指针包含的地址增加或减少,而变化的量为整数*指针的类型在内存空间分配的大小
如上面的例子,list数组是int类型,所以指针list是int*类型,因为int类型在内存中占4位,所以list+1就表示地址增加4。 即假设list代表的地址为10,list+1代表的地址为10+sizeof(int) = 14。