这在C int中是什么意思(*ptr [2])[4];

use*_*491 1 c pointers

我想知道定义的含义是什么

int (*ptr[2])[4];
Run Code Online (Sandbox Code Playgroud)

如果我打印"ptr"的大小,它显示16.同样在我的机器上,整数指针的大小为8,其中整数的大小为4.

如果我将ptr重新定义为,

int (*ptr[2]); then also, size of ptr is 16.
Run Code Online (Sandbox Code Playgroud)

所以问题是

  1. 是什么意思int(*ptr [2])[4];
  2. 我如何初始化ptr?

Max*_*kin 6

使用左右规则来阅读此类声明.

int (*ptr[2])[4] 是一个包含4个整数数组的2个指针的数组.

如果我打印"ptr"的大小,它会显示16.同样在我的机器上,整数指针的大小为8

这是因为ptr是一个2指针的数组.