有关计算机原理二维数组地址的问题

设有个一二维数组A[6][8],假设A[0][0]存放位置在1000,每个元素占6个空间,按行优先存储,则A[3][6]的存储位置是多少?

应该是1186吧。(10个字符)

应该是1180,3*8+6,A[3][6]的首地址是6,不是7,

1180,一共31个元素,(31-1)*6+1000

(A[0][7])7+ (A[3][7])8*3-1(A[3][6])

typedef struct 
{
    char a[6];
}A;
int main()
{

A a[6][8];
cout << sizeof(a[0][0]) << endl;
cout << &a[0][0] << ":" << &a[3][6] << endl;
cout << ((char *)&a[3][6] - (char *)&a[0][0]) << endl;  
cout << 1000 + ((char *)&a[3][6] - (char *)&a[0][0]) << endl
}

如果是10进制的话是1180,我跑了一下结果图片说明
不过地址一般都是16进制的,所以如果是16进制的话,那就是0x10B4了

对啊!1000+3*8*6+7*5=1180就这样!