前者是指针数组,包含3个元素,后者是一个数组型指针。
区别一是:一个是3个元芹迟素汪察的数组,相当于定义了三个变量;一个是单个变量。
区别二 是:前者变量类型困首茄是int*,后者变量类型是int (*)[3],int*指针的步长是一个int,而int (*)[3]指针步长是3个int。
int *p = new int[3];
int nAddress0 = (int)&p[0]; // 取p[0]的地址
int nAddress1 = (int)&p[1]; // 取p[1]的地址
cout << nAddress1 - nAddress0 << endl; // 输出是4,即一个int长度
int pp[3][3];
int (*q)[3] = &pp[0];
int nAddress0 = (int)q; // 取q[0]的地址
int nAddress1 = (int)(q +1); // 取q[1]的地址
cout << nAddress1 - nAddress0 << endl; // 输出是12,即3个int长度