C++二维数组与指针的问题

问题遇到的现象和发生背景

鸡啄米例程29

问题相关代码,请勿粘贴截图

如何理解array+i;*(array+i);*(array+i)+j;*(*(array+i)+j)?

  #include 
        using namespace std;
        int main()
        {
                  int array[2][3]={{1,2,3},{2,4,6}};
                  for(int i=0;i<2;i++)
                  { 
                            for(int j=0;j<3;j++)
                            { 
                                      cout<<*(*(array+i)+j)<<" ";  
                                      //也可以是 cout<
                            }
                            cout<return 0;
        }

       程序运行结果是:

       1 2 3
       2 4 6

我的解答思路和尝试过的方法

array是二维数组的首地址,array+i代表?也是个地址,*(array+i)那就代表取地址里的值,*(array+i)+j这就乱套了呀?

array+i指向第i行的首地址
*(array+i)也是指向第i行的首地址
*(array+i)+j指向第i行第j列地址
*( * (array+i)+j)取第i行第j列的值,相当于array[i][j]

看下这篇博客,也许你就懂了,链接:C++二维数组初始化的形式

好的,谢谢你