gpt4 book ai didi

c++ - 需要左值作为条件运算符中赋值的左操作数

转载 作者:行者123 更新时间:2023-11-30 21:14:28 25 4
gpt4 key购买 nike

#include <stdio.h>
int main()
{
int a = 1, b;
a ? b = 3 : b = 4;
printf("%d, %d", a, b);
return 0;
}

[user@localhost programs]$ gcc -Wall vol.c
vol.c: In function ‘main’:
vol.c:5:16: error: lvalue required as left operand of assignment
a ? b = 3 : b = 4;
^

我将左值指定为 b那为什么gcc显示错误以及如何修复它?

最佳答案

这与运算符(operator)排序有关。编译器认为你正在做的是

(a ? b = 3 : b) = 4

这显然是不正确的。

相反,为什么不将 b 放在左侧,并仅使用条件表达式获取要分配的值,例如

b = a ? 3 : 4;

关于c++ - 需要左值作为条件运算符中赋值的左操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18312565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com