c++ - C++/地址空间:每个地址 2 字节?
问题描述
我只是在尝试一些东西,我想知道这怎么可能。我有以下代码:
int var1 = 132;
int var2 = 200;
int *secondvariable = &var2;
cout << *(secondvariable+2) << endl << sizeof(int) << endl;
我得到输出
132
4
那么第二个 int 怎么可能只高 2 个地址呢?我的意思是不应该是4个地址吗?我目前在WIN10 x64下。
问候
解决方案
cout << *(secondvariable+2)
如果不打印指针,则打印 at 的值,这secondvariable[2]
是无效的索引并导致未定义的行为。
如果要打印指针,请删除取消引用并打印secondvariable+2
。
推荐阅读
- python-3.x - 将字符串转换为字节时摆脱双斜杠
- java - 制作对象时代码崩溃,因此可以从另一个类调用重绘
- java - 对动态监听器使用批处理模式
- python - 这 2 个错误的名称是如何在 except 中调用的?(硒和数据库)
- flutter - 如何在飞镖的for循环中克隆列表
- java - Spring webapp:如何最好地设置与单个数据库的 JDBC 连接,以使连接上的数据库用户名不统一?
- node.js - 用户注册后无法识别 JWT 令牌
- python - for循环中文件目录中的反斜杠加倍
- json - 如何在输出 json 文件中获取“访问令牌”值并将相同的“访问令牌”传递给 Azure 数据工厂中的另一个 REST GET 请求?
- amazon-web-services - 您请求的 vCPU 容量超过了当前 vCPU 限制 0