首页 > 解决方案 > 为什么这是无效的 C 代码?

问题描述

如果x是 type int,据我所知,++x是一个左值,所以

++x = 5;

已验证。但是编译器不喜欢它。这几天

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

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

标签: clvaluepre-increment

解决方案


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


推荐阅读