理解复杂数组声明

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

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] = /* ? */ 错误,不存在引用的数组

你可能感兴趣的