首页 > 解决方案 > 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 值如何在每次重新启动后更改为不同的值,即使没有在代码中分配这些新值?

标签: c++pointers

解决方案


&dwPointer获取 dwPointer 自己的地址(一个新的指针指向 dwPointer 的位置)。


推荐阅读