关于二重指针的问题
int main()
{
int tab[8]={3,4,2,6,7,9};
int tab2[3][4]={3,4,2,6,7,9};
cout<<*(tab+3)<<endl;
cout<<tab[5]<<endl;
cout<<*(&tab[6])<<endl;
cout<<*(*(tab2+1))<<endl;
cout<<*(&tab2[0][0]+1)<<endl;
cout<<*(tab2+1)<<endl;
cout<<&tab2[1][0]<<endl;
}
result:
6
9
0
7
4
0x7fff5fbff7e0
0x7fff5fbff7e0
关于指针的小练习,我不太明白二维数组情况下的指针是怎么处理的,第一个粗体的二重指针我完全看不懂。。。第二个粗体tab2+1指的是不是二维数组的第二行?如果是的话,输出结果为什么不是一行共4个数??
求解释。。谢谢
[解决办法]
int tab2[3][4]={ {3,4,2,6},
{7,9} }; //请尽量让自己的代码容易阅读