我试图更好地理解指针是如何工作的,所以我编写了下面的例子。基本上,因为地址只是一个数字,我想为什么不简单地将它存储在一个long q
变量中,而不是一个指针中,它似乎是工作的q
现在有相同的十六进制值作为指针p
。现在我试图访问这个长整型变量的内容,我可以做* (int*) q
,但我想知道是否有一种方法可以访问该数字的内容,而不用将变量q
与(int*)
强制转换?
#include<iostream>
using namespace std;
int main() {
int x = 9;
int *p = &x;
long q = (long) &x;
cout << p << endl;
cout << std::hex << q << endl;
}
1条答案
按热度按时间x7rlezfr1#
大多数编译器都有一个内联汇编功能,所以你可以把
q
作为参数传递给汇编代码块,并在汇编中对它做任何你想做的事情,包括解引用它。当然,这没有什么意义,但这是避免使用 C++ 的指针功能的一种方法,这正是你所问的。