【发布时间】:2013-05-13 00:30:54
【问题描述】:
我正在看一场讲座,当教授说
ptr=&x 表示一个变量ptr 分配了变量x 的地址。
对于y=*ptr+1,他说*ptr 表示存储在x 的值(或x 的值)。
我在这里有点困惑,因为*ptr 应该指向x 的地址,对,而不是存储在x 的值?有人可以详细说明一下吗?
【问题讨论】:
-
*ptr指的是存储在ptr的条目。请参阅此处以获取说明en.wikipedia.org/wiki/… -
ptr指的是变量x的地址。*ptr指的是内存中x地址处的值。*ptr = *(&x) = x. -
这是一个关于行为具体的 C 代码的问题,而不是关于 C 语言的语义的问题。这是一个编程问题而不是计算机科学问题,所以我将其迁移到Stack Overflow。
-
你必须看到this
标签: c pointers variable-assignment