如何通过指针打印2D数组?C++

ros*_*ose 1 c++

我创建了一个2D数组,并创建了一个指向第一个元素的指针.我正在尝试使用指针打印2D数组,但我收到以下错误.不知道我在这里做错了什么.

source_file.cpp:在函数'int main()'中:source_file.cpp:15:27:错误:无效类型'char [int]'对于数组下标cout << pname [x] [y] << endl;

                       ^

#include <iostream>
#include <string>
using namespace std;

int main()
{
    char name[2][2] = {'E', 'f', 'g', 'r'};
  char* pname = &name[0][0];

  for (int x = 0; x<2; x++)
  {
    for (int y = 0; y<2; y++)
      {
        cout << pname[x][y] << endl;  
      }  
  }
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*mmy 5

pname是一个指针char.所以pname[x]是一个char.因此pname[x][y],尝试从char中获取第y个项目,就像您键入的一样char t; t[10];.

假设你想传递一个指针,因为你想通过引用传递,你想要一个参数char pname[][10].

如果您只想线性输出项目,请使用当前pname步骤并逐步输出for(int c = 0; c < 4; c++) cout << pname[c] << endl;.