首页 > 试题广场 >

假定 a 是一个二维数组,则 a[i][j] 的指针访问方式

[单选题]
假定 a 是一个二维数组,则 a[i][j] 的指针访问方式为()
  • *(a + i + j)
  • *(*(a + i) + j)
  • *(a + i)+ j
  • *a + i + j
选B
【分析】
a代表数组首行首地址,
a + i 代表第i行首地址,
*(a+i)+j 代表第i行第j个元素地址,
*(*(a+i)+j)则是a[i][j].
编辑于 2019-02-28 10:34:04 回复(6)
看成了 “(a[i][j]的指针)访问方式”,而题目作者想让我们看成“a[i][j]的(指针访问方式)”😂
发表于 2022-11-06 12:35:54 回复(0)
在C/C++中,二维数组在内存中是按行进行存储的,即相邻的元素按照行顺序排列。因此,要访问a[i][j],我们需要先通过a+i找到第i行的起始地址,然后再加上j,找到第i行中第j个元素的地址。最后使用解引用操作符*获取该元素的值。
发表于 2023-10-17 15:32:08 回复(0)