实际例子:
#include <stdio.h>
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
printf("arr[0][0]: %d
", arr[0][0]); // 输出:arr[0][0]: 1
printf("arr[1][2]: %d
", arr[1][2]); // 输出:arr[1][2]: 7
printf("arr[2][3]: %d
", arr[2][3]); // 输出:arr[2][3]: 12
return 0;
}
计算机中存储排列示例:
假设有一个int类型的二维数组arr[3][4],其在计算机中的存储排列如下所示:
+------+------+------+------+
| arr[0][0] | arr[0][1] | arr[0][2] | arr[0][3] |
+------+------+------+------+
| arr[1][0] | arr[1][1] | arr[1][2] | arr[1][3] |
+------+------+------+------+
| arr[2][0] | arr[2][1] | arr[2][2] | arr[2][3] |
+------+------+------+------+
其中,每个int类型元素占用4个字节(因为int类型占用4个字节),每行有4个元素,所以每行占用16个字节(4 * 4 = 16)。因此,整个二维数组占用48个字节(3 * 16 = 48)。
实际例子:
#include <stdio.h>
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
// 获取二维数组中某个元素的二进制表示(假设为arr[1][2])
int binary_representation = *(int*)&arr[1][2];
printf("The binary representation of arr[1][2]: %d
", binary_representation); // 输出:The binary representation of arr[1][2]: 7
return 0;
}