gpt4 book ai didi

c - if 循环 C 中的多个 ==

转载 作者:行者123 更新时间:2023-11-30 20:57:06 25 4
gpt4 key购买 nike

我上周参加了一次面试,面试官问了我这个运算符优先级问题。请有人帮助我理解这个程序的逻辑。我正在 Ubuntu(linux) 上工作

int main()
{
int var = 90;
if(var += var == ++var ==8)
printf("val of var is %d \n",var);
}

该程序的输出是 91。

循环中的多个 == 是如何计算的(关联性是从左到右)???

有趣的是,如果我将代码调整为

int main()
{
int var = 90;
if(var += var == ++var)
printf("val of var is %d \n",var);
}

然后输出为 92。

此行为是否依赖于编译器???

最佳答案

正确的答案是,由于缺少sequence point,这是未定义的行为。在具有副作用的表达式之间。

关于c - if 循环 C 中的多个 ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830716/

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