向量的存储位置不连续

问题描述 投票:0回答:1

我正在Kubuntu 20.04上使用C ++,并运行了以下代码:

   vector<int> v(10,2);
   cout<<sizeof(int)<<"\n";
   for (int i = 0; i < 10; ++i)
      cout<<&(v[i])<<"\n";

输出为:

4
0x55967f666f10
0x55967f666f14
0x55967f666f18
0x55967f666f1c
0x55967f666f20
0x55967f666f24
0x55967f666f28
0x55967f666f2c
0x55967f666f30
0x55967f666f34

如果向量将数据顺序存储在内存中(块大小为4字节以上),那么为什么在“ 0x55967f666f18之后是” 0x55967f666f1c“而不是” 0x55967f666f22“?]

c++ vector memory-management stl c++17
1个回答
1
投票
您正在考虑使用十进制(Base 10)数字系统,但是指针以十六进制系统(Base 16)打印。十六进制是计算中非常重要的系统。
© www.soinside.com 2019 - 2024. All rights reserved.