C++ 指针
首地址:一段连续的存储地址中,第一个单元的地址是首地址。
指针类型的加减,是以指针所指向的类型为单位,进行偏移。
一维数组与指针:
定义一个一维数组,数组名是整个数组首地址。
int a[5];
其中a和&a[0]是相同的,都是整个数组的首地址,类型是int*
但是&a的类型是int(*)[5],,指向数组的整个地址。
如何利用指针访问数组的值?
定义一个数组 int a={1,2,3,4,5};
定义一个指针 int *p =a;//a代表了这个数组的首地址,p指向a[0]
那么*p的就是取值a[0]
p+1就是对应&a[1],那么*(p+1)就是a[1]
p+2就是对应&a[2],那么*(p+2)就是a[2].
。。。以此类推
二维数组和指针
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
a作为首地址,指向的是一维数组的第一个地址,就是a指向a[0],a+1指向a[1],a+2指向a[2]。a的类型就是int(*)[4]。
int a[2][3][4] a作为首地址,类似的指向二维数组的第一个地址。
指针数组:int*[]
数组指针:int(*)[]