我对[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。