首页 > 试题广场 >

数组定义为”int a[4][5];”, 引用”*(a+1)

[单选题]
数组定义为”int a[4][5];, 引用”*(a+1)+2″表示()(从第0行开始)
  • a[1][0]+2
  • a数组第1行第2列元素的地址
  • a[0][1]+2
  • a数组第1行第2列元素的值
a是个行指针,a+1后指向下一行,*(a+1)后变成一个列指针,再+2仍为列指针,指向a数组第一行第二列的元素,选B。题目描述的不准确,第一行也可认为是a[0]。按照给的选项只能选B
发表于 2016-12-18 22:19:57 回复(1)
B
a是一个二级指针,指向数组第一行
*(a+1)指向数组第1行第0列元素
*(a+1)+2指向数组第1行第2列元素
编辑于 2017-02-16 19:12:01 回复(4)
发表于 2017-09-18 09:57:05 回复(0)

个人理解:B选项的意思应该是:a[1][2]

发表于 2017-08-11 13:37:26 回复(4)
a *(*(a+i)+j)=a[i][j]
编辑于 2017-05-13 17:55:33 回复(0)
题目说了是从零开始,应该是第二行,第三列才对。
发表于 2020-09-24 09:02:59 回复(1)

有第0行,没第0列?

发表于 2019-07-14 10:13:36 回复(0)
*(a+1)+2是指针,指向地址。不是元素值。取地址才是。
发表于 2017-12-19 19:36:41 回复(0)
难道数组有第0行吗
发表于 2018-08-06 17:11:03 回复(1)
a指向二维数组的第一行,*(a+1)指向第一行0列!*(a+1)+2指向第一行2列!
发表于 2017-06-02 10:47:06 回复(0)
***题目,*号™在夜间模式跟本看不见
发表于 2023-04-25 01:26:53 回复(0)
题目描述有问题.*(a+1)是第二行第一列元素地址*(a+1)+1是第一行第二列元素的地址*(a+1)+2应该是第三列,小伙伴们不要太纠结了,多做做题就好了
发表于 2021-06-15 06:43:53 回复(0)
a+1不就是第一行的首地址嘛,也是第一行第一个元素的地址,取*不就是第一行第一个元素的值嘛
发表于 2018-10-07 01:23:25 回复(0)
a为第0行地址 a+1为第一行地址 *(a+1)第0列地址 *(a+1)+2 第2列地址 *((a+1)+2)第1行第2列元素 (第一个*,切换行列,指针指向的是列的地址) (第二个*,切换的是数据,指针指向的是数据)
发表于 2024-10-23 01:38:17 回复(0)
不选a的原因应该是它输出的是一个整数
编辑于 2024-03-17 01:26:26 回复(0)
取的是地址,取值还要用一次*
发表于 2023-11-15 12:53:01 回复(0)

a是一个数组指针,+1偏移一个int [5]类型大小,解应用后是个数组地址,+2偏移两个int类型,所以结果还是个地址

发表于 2023-09-11 17:07:23 回复(0)
值和地址bu不同
发表于 2022-09-09 08:39:24 回复(0)
按题目描述,我该叫a[1][2]叫第一行第二个元素,还是叫第二行第三个元素,行列下标都是0开始的吧
发表于 2022-03-10 15:35:01 回复(0)
<p>应该是元素值吧</p>
发表于 2020-11-03 20:01:50 回复(0)