乐趣区

关于c++:理解复杂数组声明

默认状况下,类型修饰符从右向左顺次绑定。例如:

int *ptrs[10]

代表的就是一个大小为 10 的数组,它的名字是 ptrs,外面寄存的内容是指向 int 的指针。

然而碰到比较复杂的数组申明,例如:

int (*Parray)[10] = &arr

就要从外向外读,首先读括号外面的局部,×Parray 意味着 Parray 是一个指针,接下来察看左边,可晓得 Parray 是一个指向大小为 10 的数组的指针,最初察看右边,晓得数组中的元素是 int。

int (&arrRef)[10] = arr;

在下面这个例子中,arrRef 是一个援用,它援用的对象是一个大小位 10 的数组,数组中元素的类型是 int。

ps:int &ref[10] = /* ? */ 谬误,不存在援用的数组

退出移动版