设有个一二维数组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就这样!