反汇编:
8: 9: int arr[3][4] = { 10: {1,2,3,4}, 00401038 mov dword ptr [ebp-30h],1 0040103F mov dword ptr [ebp-2Ch],2 00401046 mov dword ptr [ebp-28h],3 0040104D mov dword ptr [ebp-24h],4 11: {5,6,7,8}, 00401054 mov dword ptr [ebp-20h],5 0040105B mov dword ptr [ebp-1Ch],6 00401062 mov dword ptr [ebp-18h],7 00401069 mov dword ptr [ebp-14h],8 12: {9,7,6,5} 00401070 mov dword ptr [ebp-10h],9 00401077 mov dword ptr [ebp-0Ch],7 0040107E mov dword ptr [ebp-8],6 00401085 mov dword ptr [ebp-4],5 13: }; 14: }
2、给定部分值 int arr[3][4] = { {1,2}, {5}, {9} }
反汇编:
8: int arr[3][4] = {
9:
10: {1,2},
0040D7AE mov dword ptr [ebp-30h],1
0040D7B5 mov dword ptr [ebp-2Ch],2
0040D7BC xor eax,eax
0040D7BE mov dword ptr [ebp-28h],eax
0040D7C1 mov dword ptr [ebp-24h],eax
11: {5},
0040D7C4 mov dword ptr [ebp-20h],5
0040D7CB xor ecx,ecx
0040D7CD mov dword ptr [ebp-1Ch],ecx
0040D7D0 mov dword ptr [ebp-18h],ecx
0040D7D3 mov dword ptr [ebp-14h],ecx
12: {9}
0040D7D6 mov dword ptr [ebp-10h],9
0040D7DD xor edx,edx
0040D7DF mov dword ptr [ebp-0Ch],edx
0040D7E2 mov dword ptr [ebp-8],edx
0040D7E5 mov dword ptr [ebp-4],edx
13: };
14:
int arr2[3][4] = { {1,2,3,4,5}, {5}, {9} }
反汇编:
15: int arr2[3][4] = {
16:
17: {1,2,3,4},
0040D7E8 mov dword ptr [ebp-60h],1
0040D7EF mov dword ptr [ebp-5Ch],2
0040D7F6 mov dword ptr [ebp-58h],3
0040D7FD mov dword ptr [ebp-54h],4
18: {5},
0040D804 mov dword ptr [ebp-50h],5
0040D80B xor eax,eax
0040D80D mov dword ptr [ebp-4Ch],eax
0040D810 mov dword ptr [ebp-48h],eax
0040D813 mov dword ptr [ebp-44h],eax
19: {9}
0040D816 mov dword ptr [ebp-40h],9
0040D81D xor ecx,ecx
0040D81F mov dword ptr [ebp-3Ch],ecx
0040D822 mov dword ptr [ebp-38h],ecx
0040D825 mov dword ptr [ebp-34h],ecx
20: };
3、省略里面的{ } int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
反汇编:
8: int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
0040D7AE mov dword ptr [ebp-30h],1
0040D7B5 mov dword ptr [ebp-2Ch],2
0040D7BC mov dword ptr [ebp-28h],3
0040D7C3 mov dword ptr [ebp-24h],4
0040D7CA mov dword ptr [ebp-20h],5
0040D7D1 mov dword ptr [ebp-1Ch],6
0040D7D8 mov dword ptr [ebp-18h],7
0040D7DF mov dword ptr [ebp-14h],8
0040D7E6 mov dword ptr [ebp-10h],9
0040D7ED mov dword ptr [ebp-0Ch],0Ah
0040D7F4 mov dword ptr [ebp-8],0Bh
0040D7FB mov dword ptr [ebp-4],0Ch
int arr2[3][4] = {1,2,3,4,5,6,7,8,9,10}; 反汇编:
10: int arr2[3][4] = {1,2,3,4,5,6,7,8,9,10};
0040D802 mov dword ptr [ebp-60h],1
0040D809 mov dword ptr [ebp-5Ch],2
0040D810 mov dword ptr [ebp-58h],3
0040D817 mov dword ptr [ebp-54h],4
0040D81E mov dword ptr [ebp-50h],5
0040D825 mov dword ptr [ebp-4Ch],6
0040D82C mov dword ptr [ebp-48h],7
0040D833 mov dword ptr [ebp-44h],8
0040D83A mov dword ptr [ebp-40h],9
0040D841 mov dword ptr [ebp-3Ch],0Ah
0040D848 xor eax,eax
0040D84A mov dword ptr [ebp-38h],eax
0040D84D mov dword ptr [ebp-34h],eax
11: }
4、省略长度 int arr[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
8: int arr[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
0040D7AE mov dword ptr [ebp-30h],1
0040D7B5 mov dword ptr [ebp-2Ch],2
0040D7BC mov dword ptr [ebp-28h],3
0040D7C3 mov dword ptr [ebp-24h],4
0040D7CA mov dword ptr [ebp-20h],5
0040D7D1 mov dword ptr [ebp-1Ch],6
0040D7D8 mov dword ptr [ebp-18h],7
0040D7DF mov dword ptr [ebp-14h],8
0040D7E6 mov dword ptr [ebp-10h],9
0040D7ED mov dword ptr [ebp-0Ch],0Ah
0040D7F4 mov dword ptr [ebp-8],0Bh
0040D7FB mov dword ptr [ebp-4],0Ch
int arr[3][4] = {1,2,3,4,5,6,7,8,9,10};
10: int arr2[3][4] = {1,2,3,4,5,6,7,8,9,10};
0040D802 mov dword ptr [ebp-60h],1
0040D809 mov dword ptr [ebp-5Ch],2
0040D810 mov dword ptr [ebp-58h],3
0040D817 mov dword ptr [ebp-54h],4
0040D81E mov dword ptr [ebp-50h],5
0040D825 mov dword ptr [ebp-4Ch],6
0040D82C mov dword ptr [ebp-48h],7
0040D833 mov dword ptr [ebp-44h],8
0040D83A mov dword ptr [ebp-40h],9
0040D841 mov dword ptr [ebp-3Ch],0Ah
0040D848 xor eax,eax
0040D84A mov dword ptr [ebp-38h],eax
0040D84D mov dword ptr [ebp-34h],eax
int arr[3][4] = {1,2,3,4,5,6,7,8,9};
12: int arr3[3][4] = {1,2,3,4,5,6,7,8,9};
0040D850 mov dword ptr [ebp-90h],1
0040D85A mov dword ptr [ebp-8Ch],2
0040D864 mov dword ptr [ebp-88h],3
0040D86E mov dword ptr [ebp-84h],4
0040D878 mov dword ptr [ebp-80h],5
0040D87F mov dword ptr [ebp-7Ch],6
0040D886 mov dword ptr [ebp-78h],7
0040D88D mov dword ptr [ebp-74h],8
0040D894 mov dword ptr [ebp-70h],9
0040D89B xor ecx,ecx
0040D89D mov dword ptr [ebp-6Ch],ecx
0040D8A0 mov dword ptr [ebp-68h],ecx
0040D8A3 mov dword ptr [ebp-64h],ecx
5、为什么要使用二维数组:更加直观 比如:一年有12个月,每个月都有一个平均气温,存储5年的数据 int arr[5][12] = { arr[1][5] {1,2,1,4,5,6,7,8,9,1,2,3} //0 {1,2,1,4,5,6,7,8,9,1,2,3} //1 {1,2,1,4,5,6,7,8,9,1,2,3} //2 {1,2,1,4,5,6,7,8,9,1,2,3} //3 {1,2,1,4,5,6,7,8,9,1,2,3} //4 }
数组越界:
void HelloWord() { printf("Hello World"); getchar(); } void Fun() { int arr[5] = {1,2,3,4,5}; arr[6] = (int)HelloWord; }
总结:
数组是允许越界的,arr[6]存的是函数的地址,也就是指针