C语音中c=a++||b++和c=a++&&b++有什么区别呢?

如题所述

其实=是赋值符号,右边是逻辑判断语句,当右边的式子是真,那么c=1,反之为0.
第一个里,||是或关系,即判断a是否为0,若不为零,则此时逻辑已经为真,c=1.不必执行||后的语句.故b不变。c=1。
第二个是与关系,只有两者同时为真,才能得到c=1.所以你要两者依次判断是否为0.如果有一个为0,那么c=0.而且当a=0时,不必执行后面的b运算。这个是||,&&的屏蔽作用~
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-12
c=a++||b++和c=a++&&b++
a=1
c=a++||b++; 执行后 c= 1,a=2,b 不变
a=0
C=a++ && b++; 执行后 c= 0,a=1,b 不变
|| 为真时后面的表达式不执行
&& 为假时 后面的表达式不执行;
|| 任何一个为真结果为真
&&本回答被提问者和网友采纳
第2个回答  2013-03-25
你这个就是优先级的问题 "="赋值运算符最低 ,N++ 是先用再加,所以从右向左运算 “||” 或运算是一真则真, 同假为假 就是说有一边是真(有一边非0), 最后的结果就是真(不为0) “&&”与运算 是一假则假,同真为真,(有一边是0)则是假,同时不为0才是真。 希望能帮到你
第3个回答  2013-03-25
c=a++ || b++ 等价于
{c=a||b;
a=a+1;
b=b+1;

c=a++&&b++等价于
{c=a&&b;a=a+1;b=b+1}
区别一目了然,不用解释了哈

第4个回答  2013-03-25
看上去是一样的,一个是或,一个是与吧,第一个是只一个条件成立就可以,第二个是两个条件要同时成立。
相似回答