7: int array[3][4] = {{1,2,3,4}};
00401048 mov dword ptr [ebp-30h],1
0040104F mov dword ptr [ebp-2Ch],2
00401056 mov dword ptr [ebp-28h],3
0040105D mov dword ptr [ebp-24h],4
00401064 mov ecx,8
00401069 xor eax,eax
0040106B lea edi,[ebp-20h]
0040106E rep stos dword ptr [edi]
8:
9: int a = array[0][1];
00401070 mov eax,dword ptr [ebp-2Ch]
00401073 mov dword ptr [ebp-34h],eax
我刚刚把一段自己写的代码反汇编了下,看到了这里的时候,我想写点东西给访问我博客的朋友,以上反汇编说明了多维数组其实都是以一维数组的方式存储的,为何是这样呢?原因是编译器会帮我们计算多维数组中元素对应的一维存储空间。