c++ 如何在不使用指针的情况下访问地址内容

v09wglhw  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(157)

我试图更好地理解指针是如何工作的,所以我编写了下面的例子。基本上,因为地址只是一个数字,我想为什么不简单地将它存储在一个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;
}
x7rlezfr

x7rlezfr1#

大多数编译器都有一个内联汇编功能,所以你可以把q作为参数传递给汇编代码块,并在汇编中对它做任何你想做的事情,包括解引用它。当然,这没有什么意义,但这是避免使用 C++ 的指针功能的一种方法,这正是你所问的。

相关问题