首页 > 代码库 > c++ 数组的声明(1)
c++ 数组的声明(1)
今天讨论静态数组的声明。
首先给出四个声明:
int *ptrs[10]; int *refs[10] = / ? /; int (*Parray)[10] = &arr; int (&arrRef)[10] = arr;
就我理解,c++里应该这样看待一个变量的声明:
如果有括号,把括号内的内容看做一个整体,然后从右往左阅读。最右边的声明元素即是声明对象的本质。
数组声明,一般名字左侧是数组所包含元素内容,右侧是数组的大小。
所以:
- 没有括号,所以从右往左阅读。首先发现ptrs是个[10],也就是数组,其中的元素是int *。
- 从右往左阅读。refs是个[10],但是因为引用不是对象,不可能有数组,所以这个是错误的。
- 把括号内的元素看成一个整体,发现*Parray是一个int [10],那么parry就是一个有十个int变量的数组的指针。
- 同理,arrRef是一个有十个int变量的数组的引用。
小测试:猜猜下面表达式的作用?
int *(&arry)[10] = ptrs;
答案:易猜得arry是一个int *[]的引用。该表达式是将该数组的第十个对象赋值为ptrs。
今天就整理到这里。
c++ 数组的声明(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。