gpt4 book ai didi

c - 为什么我会收到 lValue 错误?

转载 作者:行者123 更新时间:2023-12-01 13:25:49 27 4
gpt4 key购买 nike

我是 C 语言的新手。我对左值错误有疑问。据我所知,当没有永久地址承载变量来存储右值时,我们会得到一个左值错误。在这里,我可以在左侧看到一个变量。但是,我仍然得到左值错误。有人可以澄清我对左值或所用运算符的概念吗。

#include"stdio.h"
void main()
{
int x=10,a;
x<0 ? a = 100 : a = 1000;
printf(" %d",a);
}

谢谢。

最佳答案

应该是

a = x < 0 ? 100 : 1000;

赋值比三元运算符的优先级低,所以它搞砸了。

或者这也行(记住我之前说的)

x<0 ? (a = 100) : (a = 1000);

编译器如何看待你的?

((x<0) ? a = 100 : a) = 1000;

现在很清楚为什么编译器会提示左值。(三元运算符生成一个右值,而赋值运算符期望它的左边有一个左值)不是吗?

关于c - 为什么我会收到 lValue 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49093057/

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