看懂十六进制表示的地址
可以写一个小的测试来测试地址:写一个二维数组,然后打印出它的每个元素的地址。
测试代码如下:
void test_arr() {
int array[2][3] = {
{0, 1, 2},
{3, 4, 5}
};
cout << &array[0][0] << " " << &array[0][1] << " " << &array[0][2] << endl;
cout << &array[1][0] << " " << &array[1][1] << " " << &array[1][2] << endl;
}
int main() {
test_arr();
}
测试地址为:
0x7ffee4065820 0x7ffee4065824 0x7ffee4065828
0x7ffee406582c 0x7ffee4065830 0x7ffee4065834
0x开头表示地址使用16进制表示,可以看出每个元素地址之间相差为4是4个字节,因为我们定义的元素类型为int型。0x7ffee4065828 与 0x7ffee406582c 也是差了4个字节,在16进制里8 + 4 = c,c就是12(十六进制的表示数字为 1-9,A(10)、B(11)、C(12)、D(13)、E(14)、F(15)。