关于二维数组元素的地址表示方法 怎么理解呀 在线求解

&a[i][j]
a[i]+j
*(a+1)=j
&a[0][0]+4*i+j
a[0]+4*i+j
以上五个都为表示方法 每一个都要给详细的解释
a[i]=*(a+i)为什么

前提int a[3][4]

&a[i][j] 表示数组a中第i行第j列的元素的地址
a[i]+j 如果数组a定义为一个二维数组,那么a[i]+j 就表示第i行第j列的元素的地址,和上面那个一样,如果数组a是一维数组,那么就表示一个表达式的值
*(a+1)=j 数组名表示第一个元素的地址,加1后表示a[0][1]的地址,这句相当于a[0][1]=j;
&a[0][0]+4*i+j 这个表示a[i][j]的地址,前提是a的列数为4
a[0]+4*i+j 这个表示a[4*i+j][0]的地址,因为a[0]表示第一行的地址,递增的单位为一行追问

行地址比如a[o]前面就不用加&吗

追答

如果a是一个二维数组的话,a[0]就表示行地址不用加&

追问

&a[i][j] 表示数组a中第i行第j列的元素的地址 你的是错的
&a[i][j] 表示数组a中第i+1行第j+1列的元素的地址

追答

嗯,是了,数组从0开始计数,都加1就OK了

追问

a[0][1]=j这是什么意思

追答

就是普通的赋值啊,把 j 赋给a[0][1]

温馨提示:答案为网友推荐,仅供参考
相似回答