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

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

【解析】
【C++二级难题图解】对二维数组数组名作指针的考察
  (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]

相关文章:

  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2021-04-16
  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
猜你喜欢
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2021-12-31
  • 2022-12-23
相关资源
相似解决方案