本文共 453 字,大约阅读时间需要 1 分钟。
一个指针和一个整数量进行算术运算时,会根据合适的大小进行调整,这个“合适的大小”就是指针所指类型的大小,“调整”就是把整数值和“合适的大小相乘”。
指针数组是数组, 由于 [] 优先级高于*,所以 int *a[10]表示指针数组。
数组指针是指针,所以 int (*p)[10],p表示指针,p指向一个有10个int的数组。
二维数组的数组名是一个数组指针。
int a[4][10];int *(p)[10] = a;
int a[10];int (*p)[10] = &a; // a的类型为 int*, &a的类型为 int (*)[10]
假设声明数组 int a[4][5];
a的第一个元素为 a[0], a表示数组首元素的地址,即指向数组首元素a[0]的指针
a[0]数组的第一个元素是a[0][0],a[0]表示数组a[0]首元素a[0][0]的指针。
&a表示数组a的首地址
则有