下面程序的输出结果是?
#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