【问题标题】:Why this is invalid C code? [duplicate]为什么这是无效的 C 代码? [复制]
【发布时间】:2018-07-11 10:24:26
【问题描述】:

如果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 中),因此您不能为其分配任何值。

【讨论】:

    猜你喜欢
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2017-04-20
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多