永发信息网

二维数组的指针

答案:3  悬赏:10  手机版
解决时间 2021-05-12 07:33
  • 提问者网友:十年饮冰
  • 2021-05-11 11:35

#include<iostream>
using namespace std;
void main()
{
int array2[2][3]={11,12,13,21,22,23};
for(int i = 0;i<2;i++)
{
cout<<*(array2+i)<<endl;
for(int j =0;j<3;j++)
{
cout<<*(*(array2+i)+j)<<" ";
}
cout<<endl;
}
}

*array2+i~不是输出一个数值么,为什么是一个地址的?

*(*(array2+i)+j)这个里面的*array2+i不是一个数值么,数值+j怎么可能是一个地址的?

最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-05-11 12:31
二维数组中。*(array2+i)表示的是第i行的首地址。
在一维数组中,*(array2+i)才表示数值。
*(*(array2+i)+j)中的*(array2+i)+j表示第i行第j列的地址。
嘿嘿。。
全部回答
  • 1楼网友:千夜
  • 2021-05-11 12:52

二维数组的数组名应该用指向数组的指针的的常指针, 不是什么二级指针, 或什么二级指针, 在TC下可以行, 但标准C++是不可以的, 二维数组是数组的数组, 只有指向指针数组的指针是二级指针,即指针数组名是指向指针的指针, 

  • 2楼网友:执傲
  • 2021-05-11 12:39

你那是一个二级指针,所以要在前面打两个**号。就可以取值了。去看看不同级数指针的相关资料

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯