C数组定义

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:22:10
*(&a[0][0]+4*i+j)
是什么意思?

1.如果a[][4]的话
我觉得*(&a[0][0]+4*i+j)指向的就是a[i][j]
2.如果不知道a[][]是个什么数组,那么*(&a[0][0]+4*i+j)指向的就是a[0][0]向后的第4*i+j个数组元素

取数组a[0][0]的首地址,将其往后移动 4*i+j 个位置,然后取新地址里面的值

&a[0][0]为数组a第一个元素的地址

在此数组中,每个元素占用4个内存空间.

&a[0][0]+4*i+j名为a的数组第i行第j个元素的地址

*(&a[0][0]+4*i+j) 就是数组a第i行第j个元素的值了.