我定义了一个中间typedef来定义对固定大小数组的引用。

typedef int CI[0x10];
CI& arr=*(CI*)mypointer;

这样写,这样以后我就可以使用countof(arr)
我试图用一个语句写它,但是下面是我失败的尝试。我知道这是错误的,因为“&”应同时位于“int”和“[0x10]”中,而不应位于arr1上,但是可以在一个语句中编写它;
int (arr1&)[classInfoN]=*(CI*)mypointer;

最佳答案

您将&放在错误的位置。就像您的工作示例一样,它始终位于标识符的左侧。

所以:

int (&arr1)[0x10] = *reinterpret_cast<int (*)[0x10]>(mypointer);

10-08 00:44