首页 > 试题广场 >

已知int a[3][3] = { 1, 2, 3, 4,

[单选题]
已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };,不能表示数组元素a[2][1]的地址是()
  • &a[2][1]
  • *(a[2]+1)
  • a[2]+1
  • *(a+2)+1
a指向第一行,a+2指向第三行,*(a+2)指向第三行第一个元素,*(a+2)+1指向第三行第二个元素
发表于 2018-11-29 17:55:19 回复(0)
本题目最大的困难在于对于二维数组的指针该如何进行分析?
A:a[2][1]表示变量本身,&a[2][1]表示取该变量的地址。
B:a[2]表示一个指针,它指向a[2][0],则a[2]+1则是指向a[2][1]变量,所以*(a[2]+1)表示a[2]+1所指向单元的内容,即a[2][1] 。
C:与B不同,a[2]+1仍然还是指针,指向的是a[2][1]的地址。
D:a也是指针,而它指向的是a[0],指向的还是指针,a+2指向的是a[2]这个指针,所以*(a+2)是指针a[2]本身,即*(a+2)+1 = a[2]+1。
发表于 2021-06-16 13:28:58 回复(1)
发表于 2019-09-23 19:52:57 回复(0)
题目要求的是地址,而B选项表示的是元素,即a[2][1]=8这个元素。
发表于 2019-07-14 17:27:15 回复(0)
B 先看括号里面的,如果括号里面是地址,加*变元素;如果括号里面是元素,只能加&进行取地址
发表于 2019-04-15 13:56:42 回复(0)
B选项已经访问到元素a[2][1],
发表于 2018-05-16 21:50:48 回复(0)
*(a[2]+1)  是元素
*(a+2)+1这个是地址

发表于 2021-02-13 13:14:59 回复(0)
*(a[2]+1)访问到元素8
发表于 2019-03-25 17:49:39 回复(0)
&a[2][1]表示对数组取地址;
*(a+2)+1=a[2]+1

发表于 2018-07-10 10:27:13 回复(0)
&a〔2〕〔1〕取的是a21变量的地址,而不是数组元素!
发表于 2022-09-16 23:59:22 回复(0)
B选项中叔祖母代表首元素地址,再解引用就不是地址了
发表于 2022-04-11 20:20:15 回复(0)
B选项给出的是值而不是地址
发表于 2022-04-03 09:32:31 回复(0)
注意:a是a[0]指针的首地址,因此a+2是a[2]指针的首地址。
*(a+2)为:a[2]这个指针本身,a[2]这个指针是指向一个一维数组的
*(a+2)+1:故为a[2]所指一维数组的第二个元素的地址,即a[2][1]
发表于 2021-12-05 14:31:19 回复(0)
注意是地址
发表于 2021-05-13 15:31:52 回复(0)

二维数组的两种访问方式:(合适类型的)p = a;

a[0][0]等同于*(*(p+0)+0);     a[i][j]等同于 *(*(p+i)+j)

 a[0]表示二维数组的第一维的第一个元素,相当于是

 第二维的整体数组的数组名。数组名又表示数组首元素

 首地址,因此a[0]等同于&a[0][0];


发表于 2020-10-14 11:45:58 回复(0)
那么&a[7]可以嘛?
发表于 2020-10-10 11:50:48 回复(1)

为什么C是对的呢 他表示的不是第三列的数据吗 ,也没有表示行啊

发表于 2020-01-26 19:30:48 回复(0)
show you the code
发表于 2019-11-21 17:34:36 回复(0)