我对[dcl.array]/1感到困惑:

考虑一下声明:

int (*p)[42];
该声明满足上述语法(并且不满足前面几节中描述的语法),因此该段落应适用,因此我们得出结论p的类型是数组类型。但是,我们知道p的类型是pointer to array of 42 int,它是指针类型。
我想念什么吗?还是pointer to array of 42 int确实是数组类型?

最佳答案

这是标准措辞的错误。当然,int (*p)[42];不是数组类型,但是满足[dcl.array]/1中的语法(并且不满足[dcl.meaning]/5[dcl.meaning]/6[dcl.ptr]/1[dcl.ref]/1[dcl.mptr]/1之前的语法),因此应使用[dcl.array]/1。

我已经张贴了editorial issue

10-08 08:21