int a[10];

那么这个时候a就是这个数组首元素的地址

*+地址是取量,取地址中的量

&+变量 是取变量地址

然后定义变量的时候 int *a;这个时候a就是指针变量

指针变量只能用来存地址

指针变量本身也是有地址的

数组名本身就是数组首元素的地址

1450962369.jpg

*(arp[2])获取数组第三个元素的数组值

指针数组只能存指针,就像是char不能存int一样

int a[10];表明了长度为10的int数组

数组的特点是可以把类型一样的数据放在一起不用频繁创建变量就比如一百个一样的变量只需要循环创建存入数组里而不用一个个复制粘贴修改大大减少了时间

数组的作用其实就是为了简化大量声明!

那数组的实质就是申请一个很大的内存,然后分给每一个元素

数组有这样一个特点

int a ,b;如果说a的地址是0000,b的地址是0004,这时候我们再声明一个int c;他的地址一定是0008吗,不一定的

内存又不是你一个应用在申请,你怎么知道别的应用没申请走

可能0008就被别人拿走了,c就是0012

但是数组是一下子把0-400全部拿下来了

然后一个int是四个字节,刚好就分配给100个元素

所以0004的地址+1就是0008

这里我们的+1操作是看我们的类型=int+1实际上是+4

因为int是四个字节

char+1就是+1,byte+1就是+8

我们的a[2]的地址实际上就是a+2