use*_*918 1 c pointers variable-assignment
当教授说这ptr=&x表示一个变量ptr分配变量的地址时,我正在观看讲座并感到困惑 x.并且因为y=*ptr+1 他*ptr表示存储在x(或值x)的值.我在这里稍微感到困惑,因为*ptr应该指向x正确的地址,而不是存储在的值x?有人可以再详细说明一下吗?
考虑,
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
阅读一些关于指针的好教程.