c++ - 为什么在修改我的代码以使用指针后变量的地址发生了变化?
问题描述
在使用指针之前的内存地址&x
是0x61ff0c
#include <iostream>
#define log(x) std::cout << x << std::endl;
int main()
{
int x = 5;
log(&x);
}
&x
但是在使用指针后它变成了0x61ff08
#include <iostream>
#define log(x) std::cout << x << std::endl;
int main()
{
int x = 5;
int* ptr = &x;
log(ptr);
log(&x);
}
为什么会改变?不是应该没有吗?
解决方案
你应该像这样运行你的程序
#include <iostream>
#define log(x) std::cout << x << std::endl;
int main()
{
int x = 5;
log(&x);
int* ptr = &x;
log(ptr);
log(&x);
}
推荐阅读
- powershell - Get-InTuneManagedDevice deviceEnrollmentType 筛选失败
- npm - 可以使用 pnpm 仅使用一个包版本吗?
- android - Dagger 2:DaggerBroadcastReceiver 重新创建子组件
- browser - 无法将代理设置更改为 localhost 和端口 8080
- sed - <"$fileVariableName"> 在 csh 中有什么作用?
- amazon-web-services - 如何停止批量执行 Lambda Step 函数(一次停止多个执行)
- python - docker 和 postgreSQL / Mac OS / Python 的对等身份验证失败
- sql - 如何计算不同的值和日期小于同一行
- matlab - 使用 MATLAB 绘制实时数据
- python - 使用 plotly 为 3D 散点图设置悬停距离