C++ 多维数组打印十六进制数,而不是数组的内容

C++ 多维数组打印十六进制数,而不是数组的内容,c++,arrays,C++,Arrays,我在玩多维数组,想知道在这段代码中发生了什么,使得它打印出十六进制而不是数组的实际内容。我知道这可能是一个愚蠢的问题,但希望有人能解释这是我第一年的编程 #include <iostream> void print(int A[][3],int N, int M) { for (int R = 0; R < N; R++) // Why when executed does this code output: for(int i = 0; i < 4;

我在玩多维数组,想知道在这段代码中发生了什么,使得它打印出十六进制而不是数组的实际内容。我知道这可能是一个愚蠢的问题,但希望有人能解释这是我第一年的编程

#include <iostream>

void print(int A[][3],int N, int M)
{
  for (int R = 0; R < N; R++)    // Why when executed does this code output:
    for(int i = 0; i < 4; i++)   //0x61fdf0 0x61fdf0 0x61fdf0 0x61fdf0
    std::cout << A[R] << " ";    //0x61fdfc 0x61fdfc 0x61fdfc 0x61fdfc
  for (int C = 0; C < M; C++)    //0x61fe08 0x61fe08 0x61fe08 0x61fe08
    for(int j = 0; j < 3; j++)   //0x61fe14 0x61fe14 0x61fe14 0x61fe14
    std::cout << A[C] << " ";    //0x61fdf0 0x61fdf0 0x61fdf0 0x61fdfc
}                                //0x61fdfc 0x61fdfc 0x61fe08 0x61fe08 0x61fe08

int main ()
{
  int arr[4][3] ={{12, 29, 11},
                  {25, 25, 13},
                  {24, 64, 67},
                  {11, 18, 14}};
  print(arr,4,3);
  return 0;
}

#包括
无效打印(整数A[][3],整数N,整数M)
{
for(int R=0;Rstd::cout如果你有一个像
int-arr[4][3]
这样的二维数组,那么
arr
本质上只是一个指向整个二维数组的内存地址

类似地,
arr[X]
也是一个指向2D数组中一行的地址。因此,打印:

std::cout << arr;
std::cout << arr[1];
当然,这同样适用于函数中的
A

std::cout << arr[1][1];  // prints an int