若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( )。

A)*(*(a+i)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j

答案为A项。元素值的正确引用为*(*(a+i)+j)。

这个题目主要是考查二维数组元素的引用方法。选项A中a+i指向数组a的第i+1行,*(a+i)则是第i+1行第0列的地址值,*(a+i)+j指向了数组a第i+1行,j+1列,*(*(a+i)+j)取到的是数组a的a[i][j]元素。所以正确答案为A项。

扩展资料

二维数组的声明与赋值:

二维数组的声明方式和一维数组类似,内存的分配一样是通过new关键字开辟。特别需要注意的是,定义的时候不需要定义数组的长度,因此在中括号中不需要填入任何的内容。此外,在大括号内还有几组大括号,每组的大括号内的初值会依序指定给数组的第0、1...n行元素。

在数组进行引用传递的处理中,最为常见的形式就是基于方法进行引用数据的处理或返回。二维数组像是一个表格,有行有列。二维数组的声明和一维数组一样,需要通过new开辟空间。二维数组的声明有动态初始化和静态初始化。二维数组可以通过方法接收、返回和修改数组内容。


参考资料来源:

百度百科-二维数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
选 A。
因为 a 是地址的地址(或者说指针的指针),所以必须用到两次 * 才可以。
*(a+i) 相当于 a[i],*(*(a+i)+j) 就相当于 a[i][j]。本回答被提问者采纳
第2个回答  2011-06-15
A

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网