小编use*_*016的帖子

无法理解C中指针的mem地址结果

我在C中使用指针时遇到了令人费解的疑问.所以,我对此进行了很多搜索,但没有给出满意的答案.这是事情:

我声明了一个INT类型的指针和一个INT类型的变量(例如int x,*pointer).所以,我们假设它们都占用RAM中的顺序地址,分别是0x102和0x106.到目前为止没有惊喜.然后,我声明x = 5.我的内存映射应该是这样的,不应该?

int x, *pointer;
x = 5;
Run Code Online (Sandbox Code Playgroud)

指针1

好.在大学里,我学会了这样指定一个指针:

pointer = &x;
Run Code Online (Sandbox Code Playgroud)

我的记忆图应该是这样的:

指针1

到现在为止还挺好.但问题是:如果,而不是上面,我分配一个像这样的指针:

*pointer = x;
Run Code Online (Sandbox Code Playgroud)

'x'的内存地址不应存储在指针的内存地址中?我总是想知道像"Memory Map 2"这样的东西,但结果与"Memory Map 1"相同,也就是说,0x106地址包含一个垃圾数字.那么,如果'x'的内存地址没有存储在指针的内存地址,程序怎么知道我想指向哪个?存储此信息的位置?

这看起来像一个简单的问题,但我无法理解.:(

提前致谢!:)

c pointers

3
推荐指数
1
解决办法
295
查看次数

标签 统计

c ×1

pointers ×1