首页 > 试题广场 >

声明语句为inta[3][4];下列表达式中与数组元素a[1

[不定项选择题]
声明语句为int a[3][4];,下列表达式中与数组元素a[1][2]等价的是()
  • *(&a[0][0]+7)
  • *(a[1]+2)
  • *(a[0]+6)
  • a[7]
a[1][2] 是数组的第七个元素。。 A选项表示数据的第八个元素
发表于 2017-09-04 00:04:59 回复(0)
对于二维数组a[3][4],a[0]和a,都表示首元素地址,a[1]表示第二行首元素地址,a[2]表示第三行首元素地址。

&a、a、a[0]、&a[0],四者的值表现为一样的,
但是&a+1表示跳过整个二维数组,此处跳过12个int的大小
a+1和a[0]+1都表示跳过一个元素类型的大小,此处跳过一个int的大小
&a[0]+1表示跳过一个一维数组的大小,此处跳过4个int的大小
发表于 2022-03-14 22:18:07 回复(4)
a[row][col] => *(*(a + row) + col)
&a[0][0] => &(*(a + 0) + 0) => int *  
a[1] = > *(a + 1) => int *
a[0] => *(a + 0) => int *
int * 指针加一,会指向下一个int
发表于 2021-03-03 16:39:55 回复(0)
A.表示a[1][3] B.a[1]等价于&a[1][0],a[1]+2表示&a[1][2],*则将其值取出来 C.a[0]等价于&a[0][0],a[0]+6表示&a[1][2] D.选项错误
发表于 2022-10-26 20:15:26 回复(0)
二维数组其实就是一维数组,a[0] == &a[0][0] 一维数组第一个元素,而a[1][2]是 1*4+3 = 7  第7个元素,所以C对A错,B选项 *(a[1]+2) = *(&a[1][0] +2) = *(&a[1][2]) = a[1][2]正确,D选项表示错误。
发表于 2020-09-13 12:35:06 回复(0)