区别 区别 int*p[n]------p 是一个指针数组,它由 n 个指向整型数据的指针元素组成 (含有 n 个指针元素) int (*p)[n]----- p 是一个指针(数组指针),指向 int[n]的数组(它指向一个由 n 个 int 元素构成的数组) #include using namespace std; int main() { int *p[4]; int a=1,b=2,c=3,d=4; p[0]=&a; p[1]=&b; p[2]=&c; p[3]=&d; int (*pp)[4]; //pp[0]=&a;//error int aa[4]={5,6,7,8}; pp=&aa; // 换成 aa 是错误的,定义的 pp 元素个数要与 aa 相同才可以赋值 cout<<*(p[0])<<" "<<*(pp[0])< #include using namespace std; int main() { int vInt=10; int arr[2]={10,20}; int *p=&vInt; int **p2p=&p; int *parr[2]={&vInt,&vInt}; int (*p2arr)[2]=&arr; cout<<"Declaration cout<<"Declaration cout<<"Declaration cout<<"Declaration cout<<"Declaration [int vInt=10] type=="< using namespace std; int main() { int a[2]={10,20}; int *p=a;//根据上面说明,由于编译器的参与,两者类型转化后一致 int vInt=10,vInt1=11; int *parr[2]={&vInt,&vInt1}; int **p2p=parr;//上面分析,类型一致 cout<<*parr[0]<<" "<<*parr[1]<