【问题标题】:Why this is invalid C code? [duplicate]为什么这是无效的 C 代码? [复制]
【发布时间】:2025-12-13 04:40:01
【问题描述】:

如果xint 类型,据我所知,++x 是一个左值,所以

++x = 5;

有效。但是编译器不喜欢它。这几天

需要左值作为赋值的左操作数

这里发生了什么? ++x 不是左值吗?

【问题讨论】:

  • ++x 是 C++ 中的左值,而不是 C。
  • 这意味着什么?被赋值为 5 的是什么? x 得到的值是否比原来的值多 1,还是得到的值是 5,还是什么?这就像(x = x + 1) = 5

标签: c lvalue pre-increment


【解决方案1】:

++x 模糊地转换为 x = x + 1。 它不充当左值(在 C 中),因此您不能为其分配任何值。

【讨论】:

    最近更新 更多