c++ - C++ 指针和 &Pointer 的区别
问题描述
所以我对 C++ 有点陌生,我有以下代码:
DWORD64 dwPointer = 0;
long test1 = dwPointer; //equals 0
LPVOID test2 = (LPVOID)dwPointer; //equals 0x0000000000000000
LPVOID test3 = &dwPointer; //equals 0x000000a5038ff068 (result changes after each restart)
所以如果我调试它test1和test2基本上都等于0。但是为什么每次我重新启动程序时test3的值都会改变。指针的 & 前面有什么作用?
另外是否可以在 C# 中复制完全相同的示例?我必须使用哪个代码,我只是想了解发生了什么,因为我是 C# 用户,我想知道预定义的 DWORD64 = 0 值如何在每次重新启动后更改为不同的值,即使没有在代码中分配这些新值?
解决方案
&dwPointer
获取 dwPointer 自己的地址(一个新的指针指向 dwPointer 的位置)。
推荐阅读
- xslt - 仅当字符串值不为空时,如何使用 xslt2.0 连接字符串与“,”(逗号)分隔符
- html - 使用 flex - 垂直居中,除非内容高于容器
- javascript - 得到两个复选框的总和
- sql-server - SSIS加载带有动态列的Excel文件
- dax - DAX - 高级产品分组/细分问题
- r - 将参数作为 R 中的列表提供给函数
- css - Sass 自动使用变量制作颜色变体
- javascript - 从数据库中提取 ByteArrays 并将它们转换回文件以传递给局部视图
- php - PHP中增加/减少Cookie的按钮[帮助PLS]
- javascript - 使用touchmove触发悬停事件