指向数组的指针,与存储指针的数组
首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4的数组,即p[4];剩下的“int *”作为补充说明,即说明该数组的每一个元素为指向一个整型类型的指针。int *p[4]的存储结构如下:(存储方格横向排列或竖向排列没区别,只要按内存地址顺序排列就行,此处只是为画图方便)
再看int (*q)[4]。它首先是个指针,即*q,剩下的“int [4]”作为补充说明,即说明指针q指向一个长度为4的数组。int (*q)[4]的存储结构如下:
int main(int argc, const char * argv[]) {
char a='a';
// 数组中存放的指针
char * *arr= new char *[10];// * *arr <=> * arr[] 即 *arr<=>arr[]
arr[1]=&a;
cout<<arr[1]<<endl;// &a(a的地址)
cout<<*arr[1]<<endl;// a
delete []arr;
arr=NULL;
return 0;
}