若有定义:int a[3][4];则表达式&a[2][1]-a的值为9 请高手说明下这个过程

如题所述

二维数组是按行存储的也就是如下这样:
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]

而a表示的就是a[0][0]所在的地址。所以&a[2][1]-a的值为9。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-31
请你在草稿纸上画一个三行、四列的方格网,从左上角开始填写编号0,0、0,1、0,2、0,3、1,1、……2,3,然后你数一下2,1的位置(从0开始刚好是第9个),所以a[2][1]的内存地址与a[0][0]的差是9

基础知识:a表示a[0][0]的地址,&a[2][1]表示a[2][1]的地址。
第2个回答  2011-05-31
a表示a[0][0]的地址,&a[2][1]表示a[2][1]的地址。

二维数组按行线性存储。
第3个回答  2011-06-02
你定义了一个3行4列的int数组,a表示a[0][0]的地址,&a[2][1]表示的是a[2][1]的地址。
相似回答