【发布时间】:2020-04-20 18:27:58
【问题描述】:
为什么(int*) p = &x; 不是有效语句?
而*(int*) p = &x; 是没有警告的有效声明?
我知道强制转换是rvalue,但是第二条语句是如何编译的却没有警告?
【问题讨论】:
-
在第二种情况下你有一个左值。
-
你是如何声明
x的? -
p是如何定义的?该代码对我来说似乎很可疑。 -
在不知道所涉及的类型的情况下无法回答。 ...尽管如此,这并没有阻止 3 个人回答。
标签: c pointers casting rvalue lvalue