c语句 a=(--x==y++)?--x:++y 是什么意思?其中的 运算符怎么用的?

如题所述

每次判断时先--x,然后x==y比较,比较完之后y++,然后就是执行之后的选择,最后赋值给a,当然这种情况是VC++编译器适合的,用其他编译器结果可能不同,另外要说明的是:这种语句本身没有多大意义,如果你已经学会了C,这种问题没有必要深究,如果是书上看到的,撕了这页或者换一本书。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-17
(--x==y++)?--x:++y;这个整体是个问号表达式,先判断--x与y++是否相等,如果相等结果为--x,否则为++y,然后把这个结果赋值给a本回答被提问者采纳

c语句 a=(--x==y++)?--x:++y 是什么意思?其中的 运算符怎么用的?
每次判断时先--x,然后x==y比较,比较完之后y++,然后就是执行之后的选择,最后赋值给a,当然这种情况是VC++编译器适合的,用其他编译器结果可能不同,另外要说明的是:这种语句本身没有多大意义,如果你已经学会了C,这种问题没有必要深究,如果是书上看到的,撕了这页或者换一本书。

C语言中a=(--x==y++)?--x:++y;什么意思
这是一个三目运算符,如果 --x 与 y++相等的话,把--x的值赋给a,否则,将++y的值赋给a;在这里,--x是先对x进行自减1再执行语句,y是再执行完语句再执行y自加1,也就是说现在解析出来的表达式为 x - 1 == y ,后面同理!

如何理解a=(-- x== y++)?
a=(--x==y++)?--x:++y;先判断--x==y++是否为真,--x,将x的值减1,取其值,结果是9,y++先取y的值为9,然后其值加1,y=10 所以--x==y++ 为真,所以 a=--x=8 b=x++; 先取x的值8,再将其值加1,所以b=8,x=9 c=y=10 所以最后结果就是8 8 10 主是理解前增(...

C语言的一道问题。
解释:a=(--x==y++)?--x:++y; \/\/ --x先减1后运算为9,等于y++先运算后加1,判断两边都等于9取运算式--x,先减1后运算值为8,到这时最终值x=8,y=10;if(x<9)b=x++;c=y; \/\/ if条件满足,x++先运算后加1,即b=8;c=y \/\/ c被赋值为10;则a,b,c的值分别为...

C语言习题求解第九题求详细说明
(--X==y++)?--x:++y 先算(--x==y++)先算--x y++ --x是先减一 再使用 所以x=9 y++是先使用再加一 此时y还是=9 但是下次使用y就等于10 因此(--x==y++)是成立的 计算--x 不计算++y 因为不计算++y 所以y=10 此时x=9 --x 就是先减一 再使用 所以a=8 ...

a= (++x==--y)? --x:++y是什么意思
(--x==y++)?--x:++y;这个整体是个问号表达式,先判断--x与y++是否相等,如果相等结果为--x,否则为++y,然后把这个结果赋值给a

关于C++三目运算的问题
先判断--x == y++,--x是先执行-运算,实际上你可以理解成两句语句就是x-1 == y ; y = y+1;所以就是 10-1 == 9,成立,等到判断过了之后,y++生效,y = 10;然后给a赋值,--x,就是 a = x -1 ;你老师说的y++没有执行大概说的事 --x:y++里的y++。

一道关于--x与++x的C语言题目
y=9;(2) int a,b,c;(3) a=(--x==y++)?--x:y++; \/\/--x为x=9,y=9 所以相等,执行后面的--x,得到x=8,并赋值给a.在执行下条语句前执行(--x==y++)里面的y++,得y=10;(4) b=x++; \/\/b赋值为8,转下条语句前执行x++,x=9 (5) c=y; \/\/c赋值为10 ...

c语言:int x=6,y=5;a=(--x==y++)?x:y+1;a=5的原因
()里--X先X自减1,此时X=6-1=5 然后X先和Y比较是否相等,然后Y才+1;所以()里的==结果是真;当?号前面结果为真时,执行:号前面的表达式;所以a=x=5

执行下列语句后,a、b、c的值是 。
int a,b,c;a=(--x = = y++) ? –x :++y; \/\/--x是先-1后计算,所以x=9而y++是先计算后+1,b=x++; \/\/上面条件不成理,所以a=++y 而++y是先+1后计算,所以y=2 ,a=2 c=y; \/\/x++是先计算后+1,所以b=9,x=10 \/\/c=2 这个程序的结果是a=2,b=9...

相似回答