C语言x=(a--==--b)?--a:b--是什么意思

如题所述

先执行判断:a--==--b
即先取a的值,将b的值先减1后再进行相比较,取比较结果(随后a再减1)。
若比较结果为“真”则取--a的值(将a先减1后取值)赋值给x;
若比较结果为“假”则取b--的值(将b先取值后再减1)赋值给x。
举例:若int a=3,b=4;则
a--==--b
的值为真(因为a--值为3,然后a=2),而--b的值为3(b先变为3再取值),而3==3。
所以就将--a的值赋给x,即x=a=1。
再举例:若int a=3,b=5;则
a--==--b
的值为假(因为a--值为3,然后a=2),而--b的值为4(b先变为4再取值),而3!=4。
所以就将b--的值赋给x,即先将原b的值赋给x,x=4,再b减1,b=3。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-19
(a==b)? a:b
?前面是真假条件,后面是对应条件的结果
如果前者为真,则a是结果,如果为假,则b是结果
== 这个是等于判断条件 意思是前后两者是否相等
当a等于b的时候 结果为a 当a和b不等的时候结果为b
最后把结果复制给x本回答被提问者采纳

C语言x=(a--==--b)?--a:b--是什么意思
a--==--b 的值为真(因为a--值为3,然后a=2),而--b的值为3(b先变为3再取值),而3==3。所以就将--a的值赋给x,即x=a=1。再举例:若int a=3,b=5;则 a--==--b 的值为假(因为a--值为3,然后a=2),而--b的值为4(b先变为4再取值),而3!=4。所以就将b--...

C语言中b--与--b有什么区别,举例说明
b--是在调用b以后给b减1,--b是在调用b之前先减1再调用。例如:b=1;a=b--;此时输出a为1,b为0。若a=--b,则a为0,b为0。

求c语言解答 a---b怎么理解 为什么不能看成是--b 而是a--?求助 谢...
运算符是贪婪匹配,也就是最长的合法形式(ISO\/IEC 9899:1999标准 6.4 第4条),那么 a=a---b就会匹配成 a = (a--)-b;

为什么c语言中-a---b是-(a--)-b 不是-a-(--b)?
C语言运算符有优先级的。

在C语言中‘==、++、--、!=’各是什么意思
“==”就是把等于的意思而“=”是赋值运算符 例如; a==b,就是a等于b 而a=b,则是把b赋值给a ++i --i ( 在使用之前使i的值加(减1) 例如i的原值 i=3 则j=++i (i的值先加1变成4,在赋值给j,j的值现在是4)而 i++ i-- 例如j=i++ 则先是将i的值3赋给j,j...

C语言中--是什么意思?
这也是C语言的特色之一。--表示自减操作,即执行后b的值比原来减一,等效于 b=b-1;当--在变量后面时,先对b取值做其它操作,再执行自减。在这个题目里面,就是先判断b<0 然后再执行自减。比如这个代码:int main(){ int b = 0; \/\/定义b并初始化为10 if(b--<0)printf("b=%d...

c语言中执行语句:b=a-b?a:b-1;是什么意思?
这是一个三目运算式,如果b=a-b成立,就等于a,否则等于b-1.

C语言里“--a”什么意思?
b = 1,再 a = a + 1;b = ++a等价于:先 a = a + 1,并赋值给b,b = 2 再取出a的值 a = 2;另:printf()这个函数参数计算是从右向左,参数匹配时从左到右。如:printf("a++=%d\/*c*\/,a=%d\/*b*\/\\n",a++\/*C*\/,a\/*B*\/);其实是:B匹配b,C匹配c,先计算B,C ...

c语言中各个运算符代表什么?就是++ —— ==啥的
() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。2级(右结合)!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。3级(左结合)乘法运算符;\/除法...

C语言中a- =b是a=a-b还是a=b-a?
建议在刚开始学习C语言,比较别扭时,可以这样:碰见-= ,+=,%=这类的比如a-=b;先看运算符左边的是a,在纸上写下a=a,然后看到是-=,就在a=a后写成a=a-,最后写出a=a-b。等以后见多了,就可以随意的一眼看明白了。

相似回答