【发布时间】:2018-10-28 19:48:56
【问题描述】:
如果我运行以下代码:
int main(){
int x = 0;
int* y = &x;
&x = y;
}
我得到错误:
需要左值作为赋值的左操作数
我理解这意味着当使用 addressof 运算符时,产生的指针不是有效的左值,正如 c 文档中所反映的那样。
我的问题很简单:为什么?
我无法更改指向变量 x 的指针的值的原因是什么?是防止程序员犯错,还是根本没有意义(这种情况请说明原因)
【问题讨论】:
-
它和
x + 1 = 3一样有意义。
标签: c pointers memory-address