这个演员是什么意思?(int(*)[10])

Nox*_*997 3 c casting

我偶然发现了以下演员:

(int (*)[10])
Run Code Online (Sandbox Code Playgroud)

在我看来,这是一个"指向int的指针".我们假设以下数组声明:

int array[10];
Run Code Online (Sandbox Code Playgroud)

然后我会假设它 &array是类型的(int (*)[10])

它是否正确?

Sou*_*nta 6

它是指向大小为10的整数数组的指针,而不是指向int指针的指针.

例如,当您传递类型时

 char arr[20][10]
Run Code Online (Sandbox Code Playgroud)

一个函数它衰变为键入char(*)[10]

由于编译器必须知道没有列来有效地将2d数组转换为内存中的线性分配,因此它与int**类型不同.