gpt4 book ai didi

c++ - 在 C++ 中使用 += 进行条件运算

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:09 25 4
gpt4 key购买 nike

下面这些语句是做什么的?
gcc 的输出是:1 101。
谁能解释为什么会这样?

int a = 100, b = 108, c = 2;
a += b ? c = 1 : c = 0;
cout << c << " " << a;

最佳答案

相当于:

a += (b ? (c=1) : (c=0));

向外扩展:

a = a + (b ? (c=1) : (c = 0));  // if (b!=0) then let c=1, else let c=0

填写a和b:

a = 100 + (108 ? (c=1) : (c = 0));

由于 108 不是“假”(0) 表达式,因此执行 c=1 的赋值。分配的副作用是分配等于分配的值。并将该分配的结果添加到:

a = 100 + (c=1);

相当于:

t = (c = 1); // t is 1
a = 100 + t;

因此,由于 t 为 1:

a = 100 + 1;

关于c++ - 在 C++ 中使用 += 进行条件运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33991982/

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