【问题标题】:How i can read memory address fetched using pointer?我如何读取使用指针获取的内存地址?
【发布时间】:2020-04-30 06:57:39
【问题描述】:

我想知道这个(0x6dfe80)内存地址是什么?以及它如何在编码中有用。如果我获取了一个内存地址以及我如何读取它并估计这个内存位置在哪里。

  • 0x 是什么意思?
  • 6d 是什么意思?
  • fe 是什么意思?
  • 80 是什么意思?

或者这个内存位置是怎么排列的?

#include <iostream>

using namespace std;

int main(){

    int a,b,c;
    int* pointer_a; int* pointer_b; int* pointer_c;


    pointer_a = &a;
    pointer_b = &b;
    pointer_c = &c;

    cout<<"Address of variable a : "<<pointer_a<<endl;
    cout<<"Address of variable b : "<<pointer_b<<endl;
    cout<<"Address of variable c : "<<pointer_c<<endl;

    return (0);
}

【问题讨论】:

  • Hexadecimal 维基百科上的系统
  • 所谓的hexadecimal notation
  • 打印指针的值(指针指向的地方)大多是无用的,尤其是在具有虚拟内存的现代系统上。至于为什么可能需要指针,这确实是一个广泛的问题。
  • 有趣的事实:如果您没有使用abc 的地址,那么它们可能会在寄存器中。
  • 十六进制符号应该是任何体面的书籍、课程或教程的一部分。

标签: c++ pointers memory memory-address


【解决方案1】:

0x 是什么意思?

0x 是一个前缀,表示以十六进制(表示 16)为基数(也称为基数)的数字。地址通常以十六进制序列化。

6d 是什么意思? fe是什么意思? 80是什么意思?

这些是十六进制数字。这是一个数字。

以及它如何在编码中发挥作用。

间接有很多用途。例如,它可以用来实现树形数据结构。

【讨论】:

    猜你喜欢
    • 2017-05-16
    • 2016-12-30
    • 2018-01-21
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多