码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 数组的声明(1)

时间:2017-07-02 13:41:29      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:对象   ptr   内容   没有   ack   ffffff   指针   应该   blog   

今天讨论静态数组的声明。

首先给出四个声明:

int *ptrs[10];
int *refs[10] = / ? /; 
int (*Parray)[10] = &arr;
int (&arrRef)[10] = arr;

就我理解,c++里应该这样看待一个变量的声明:

如果有括号,把括号内的内容看做一个整体,然后从右往左阅读。最右边的声明元素即是声明对象的本质。

数组声明,一般名字左侧是数组所包含元素内容,右侧是数组的大小。

所以:

  1. 没有括号,所以从右往左阅读。首先发现ptrs是个[10],也就是数组,其中的元素是int *。
  2. 从右往左阅读。refs是个[10],但是因为引用不是对象,不可能有数组,所以这个是错误的。
  3. 把括号内的元素看成一个整体,发现*Parray是一个int [10],那么parry就是一个有十个int变量的数组的指针。
  4. 同理,arrRef是一个有十个int变量的数组的引用。

小测试:猜猜下面表达式的作用?

int *(&arry)[10] = ptrs;

答案:易猜得arry是一个int *[]的引用。该表达式是将该数组的第十个对象赋值为ptrs。

今天就整理到这里。

c++ 数组的声明(1)

标签:对象   ptr   内容   没有   ack   ffffff   指针   应该   blog   

原文地址:http://www.cnblogs.com/MyNameIsPc/p/7105764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!