下面程序的输出结果是?
#include<iostream.h>
int main(){
int n[][3]={10,20,30,40,50,60};
int (*p)[3];
p=n;
cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl;
return 0;
}
int (*p)[3]; ///数组指针,指向一个一维数组,含有3个元素
int a[][3] = {10,20,30,40,50,60};
p = a; ///将a数组的首地址赋给p
cout<<"*p[0]"<<"---------"<<*p[0]<<endl; //10
cout<<"p[0][0]"<<"---------"<<p[0][0]<<endl;//10
cout<<"p[0][1]"<<"---------"<<p[0][1]<<endl;//20
cout<<"p[0][2]"<<"---------"<<p[0][2]<<endl;//30
cout<<"============================"<<endl;
cout<<"*p[1]"<<"---------"<<*p[1]<<endl; //40
cout<<"p[1][0]"<<"---------"<<p[1][0]<<endl; //40
cout<<"p[1][1]"<<"---------"<<p[1][1]<<endl; //50
cout<<"p[1][2]"<<"---------"<<p[1][2]<<endl; //60
cout<<"============================"<<endl;
cout<<"*(p[0]+1)"<<"---------"<<*(p[0]+1)<<endl; //20
cout<<"(*p)[2]"<<"---------"<<(*p)[2]<<endl; //初始时p在第1行,即a[0][2] = 30
p++;
cout<<"执行p++后的(*p)[2]变为"<<"---------"<<(*p)[2]<<endl; //执行p++的后会跳过整个一行到a[1][2] = 60