-
指针
指针是一个地址 -
指针变量
指针变量是存放地址的变量 -
通过指针引用数组
1、数组名代表数组中首元素的地址
int a[2]={1,3};
int *p;
p=&a[0];①
p=a;②//①和②等价
2、如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,p-1指向同一数组中的上一个元素。
3、如果p的初值为&a[0],则p+i就是数组元素a[i]的地址;a+i也为数组元素a[i]的地址
4、如果p的初值为&a[0],则p+i就是数组元素a[i]的地址,则*(p+i)为a[i];
a+i也为数组元素a[i]的地址,*(a+i)为a[i]
- 通过指针引用多维数组
1、对于二维数组int a[3][4],a代表二维数组首元素的地址,但现在的首元素不是一个简单的整型元素,而是由4个整型元素所组成的一维数组。即a代表序号为0(首行)的首地址;a+1代表序号为1 的行的首地址,a+1指向a[1],或者说a+1的值是a[1]的首地址。
a[0]、a[1]在二维数组中将其看做一个一维数组名
2、a[0]和*(a+0)等价,a[i]和*(a+1)等价,a[i]和*(a+i)等价。所以,a[0]+1和*(a+0)+1都是&a[0][1],同理*(a[0]+1)和*(*(a+0)+1)是a[0][1]的值。 - 指向由m个元素组成的一维数组的指针变量
int(*p)[4]//指针变量p指向包含4个整型元素的一维数组
- 指针数组
1、一个数组,若其元素均为指针类型数据,称为指针数组,即指针数组中的每一个元素都存放一个地址,相当于一个指针变量
int *p[4];// ,指向一维数组的整型变量,每个数组元素都可指向一个整型变量。