1. int(*p)[10]:
根据运算符的结合律,()的优先级最高,所以p是一个指针,指向的一个维度为10的一维数组。
p一个指向数组的某一行
int a[1][4]={1,2,3,4}; int (*p)[4] = a;//p point to the row of array a for(int i=0;i<4;i++) { cout<<*((*p)+i)<<" "; }
2. int(**q)[10]
这个的意义:q是一个指针,指向的元素就是1.中的p.
下面给一个例子:
#include<iostream> #include<stdio.h> using namespace std; int main() { int a[2][2]={1,2,3,4}; int (*p)[2] = a;//p point to the row of array a for(int i = 0;i<2;i++)//output matrix using p { for(int j = 0;j<2;j++) { cout<<*(*(p+i)+j)<<" "; } cout<<endl; } int (**q)[2] = &p;//q point to p for(int i = 0;i<2;i++)//output matrix using q { for(int j = 0;j<2;j++) { cout<<*(*(*q+i)+j)<<" "; } cout<<endl; } getchar(); return 0; }