C语言 (x-y)?(x++):(y++)与(x-y)等价的是(x-y==0)么?

2025-03-03 04:38:57
推荐回答(4个)
回答1:

对于(x
-
y)
?
(x++)
:
(y++);,当x
==
y时,执行y++,否则执行x++,表达式的结果要么是x++,要么是y++。
对于(x
-
y),表达式的结果是x与y的差值。
对于(x
-
y
==
0)来说,表达式的值是逻辑值,要么是真(1),要么是假(0)。
显然三个表达式不能相互替代,故这个说法是错误的。

回答2:

if((x-y)!=0)
  {
   x++;
  }
else
 {
 y++;
 }

化成if-else结构,就能很好的解释。x-y==0,也就是,x==y。

?:中的(x-y)?也就是: (x!=y)。想用 (x-y==0)?就用:(x==y)或者(!(x-y))

回答3:

(条件) ? 条件真执行 : 条件为假执行
真为非0值,假为0值

所以
(x-y)?(x++):(y++)
相当于

(x-y != 0?(x++):(y++)
你理解反了。

回答4:

(x-y)?(x++):(y++)
当x-y值为零时执行y++;语句;当x-y值非0时,执行x++语句。