【C++二级难题图解】对二维数组数组名作指针的考察

若已知“int a[3][7];”,则用指针表示数组a中的元素时,下列表示中错误的是()。

A)* (a+1)[5]
B)* (* a+3)
C)* (* (a+1))
D)* (&a[0][0]+2)

【解析】
在这里插入图片描述
  (a+1)相当于指向a[1]的指针;
  (a+1)[5]相当于(a+6)相当于指向a[6]的指针;
  * (a+1)[5]相当于* ((a+1)[5])相当于a[6]。

A选项等价于a[6](a[6]是指向a[6][0]的指针),但a[6]不存在,故A选项错误。

注意到:

  1. [ ]运算符的优先级大于*运算符;
  2. (a+1)[5]等价于(a+6)等价于&a[6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值