【问题标题】:Error: expression must be a modifiable Ivalue [closed]错误:表达式必须是可修改的 Ivalue [关闭]
【发布时间】:2020-10-01 06:14:02
【问题描述】:

我在一个带有局部双类型变量 n4_1、n4_2 和 n4_3 的函数中编写了这个“if”语句:

if (n4_1 == 17 && n4_2 == 12 && n4_3 = 2003) { }

但 Windows Studio Intellisense 会在变量下划线并表示:

表达式必须是可修改的值

'=' : 左操作数必须是左值

这些变量的值是通过cin >>命令赋值的。

我只想在所有三个条件都为真时运行“if”语句中的代码。

请您帮我解释一下为什么这是不正确的,我该如何纠正?

我是初学者,所以欢迎提出建设性的批评。提前谢谢,请用简单的词大声笑,我需要尽可能清楚地理解未来。

【问题讨论】:

  • 看起来n4_3 = 2003 是一个错字,应该是n4_3 == 2003,就像其他两个条件一样。
  • n4_3 = 2003 将始终为真,无论此语句之前的 n4_3 的值如何。但是我不认为你想无条件地将 n4_3 设置为 2003。幸运的是你在这里遇到了一个通常不会发生的错误。虽然我希望收到警告。
  • “我是初学者,欢迎提出建设性的批评。”如果您需要建设性的批评,我建议您在以后的问题中提供minimal reproducible example(这个很明显)

标签: c++ logical-operators


【解决方案1】:

请注意,if 的最后部分是一个作业。注意n4_3 = 2003 中的单个=。

您只能分配给n4_3,如果它是一个可修改的左值:即它可以出现在= 的左侧。

【讨论】:

  • 非常感谢,我没注意到。我现在尝试运行代码,它可以工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多