gpt4 book ai didi

c - 三元运算 "?:"的返回值是多少?

转载 作者:行者123 更新时间:2023-12-04 09:44:48 24 4
gpt4 key购买 nike

我的同学问了我一个问题:

之后 x,y,z 的值是多少:

x=5;
y=8;
z=((x++)<(y++)?(x++):(y++));

我不确定,所以我测试了一下,答案是:

x=7,y=9,z=6

我能理解为什么是“x=7”和“y=9”,但为什么是“z=6”?这个表达式不应该返回由 "x++"计算的值吗?

感谢您的帮助:)

最佳答案

有一个sequence point? 运算符和第二个或第三个运算符的第一个操作数的评估之间,因此第一个 x++ 将完全生效,导致 x=6。但是第二个 x++ 中的增量只有在对完整表达式求值后才会生效,因为该表达式中不再有序列点,因此 x 仍为 6 且 z=6。

关于c - 三元运算 "?:"的返回值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084512/

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