指派中的指针解除引用

use*_*918 1 c pointers variable-assignment

当教授说这ptr=&x表示一个变量ptr分配变量的地址时,我正在观看讲座并感到困惑 x.并且因为y=*ptr+1*ptr表示存储在x(或值x)的值.我在这里稍微感到困惑,因为*ptr应该指向x正确的地址,而不是存储在的值x?有人可以再详细说明一下吗?

Suv*_*yil 5

考虑,

int a = 10;
Run Code Online (Sandbox Code Playgroud)

现在,在记忆中我们有类似的东西

                   +------+
                   |      |
                   |  10  |
                   |      |
                   +------+
               0x121  a
Run Code Online (Sandbox Code Playgroud)

现在,考虑一个类型的指针变量 int

int* ap = &a;
Run Code Online (Sandbox Code Playgroud)

看起来像,

                +-------+
                |       |
                |  10   |
                |       |
          0x121 +-------+
                    a  

                +-------+ 
                |       |     
                | 0x121 |
                |       |
                +-------+
                   ap
Run Code Online (Sandbox Code Playgroud)

a是内存位置的标签,ap是地址.要获得您使用的地址的值*.这称为取消引用指针.

*ap 
Run Code Online (Sandbox Code Playgroud)

这给了你 10

阅读一些关于指针的好教程.