C++表达式(m=a>b)&&(n=c>b)的运算

题目:设整 型 变量m ,n ,a ,b ,c ,d的值均为1,表达式(m=a>b)&&(n=c>b)的运算后,m,n的值是0,1.。。为什么?解释下,谢谢。。。

&& 这个运算符有个特点,如果左侧表示值为假,右边的表达式就不执行了,左侧为真才继续执行右侧表达式
a>b结果为假,m=a>b=0(0表示为假),这时左侧表达式的值就是m的值,为0,表示假,右侧就不执行了,n就是1
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-01
根据优先级顺序这个表达式等价于(m=(a>b))&&(n=(c>b));
a>b不成立,所以为false,即0,则m = 0;
因为&&处理机制的原因,左边表达式为假,则整个表达式为假,就不对右边表达式进行计算了。
第2个回答  2011-11-01
先看第一个括号:> 优先于 = ;表达式 a > b 为假返回0,然后将 0 赋给 m ,故 m = 0;
同理:n = 0;
第3个回答  2011-11-01
&& 是需要左右两边都为真时,才是真。
x && y 也就是需要x和y为真,x&&y为真,
当x为假时,编译器已经能判断出 x&&y为假了,不可能为真了,此时编译器就不再往下判断了,也就是说y代表的东西不再执行了。
所以
m=a>b 由于 a=b=1 所以a>b为假,用int表示也就是0,所以m=0 为假
所以 n=c>b不再执行,所以n的值不变,所以 n=1本回答被提问者和网友采纳

C++表达式(m=a>b)&&(n=c>b)的运算
&& 这个运算符有个特点,如果左侧表示值为假,右边的表达式就不执行了,左侧为真才继续执行右侧表达式 a>b结果为假,m=a>b=0(0表示为假),这时左侧表达式的值就是m的值,为0,表示假,右侧就不执行了,n就是1

...m=a>b)&&(n=c>b),为什么运算后n的值为1,m的值为0?
这个也叫做&&短路。m、n、b、a、c、d的值均为一,所以a>b为假,m=a>b=0,所以不会再处理右表达式n=c>b,所以n的值不变

与m%n等价的c++表达式为?
根据优先级顺序这个表达式等价于(m=(a>b))&&(n=(c>b));a>b不成立,所以为false,即0,则m = 0;因为&&处理机制的原因,左边表达式为假,则整个表达式为假,就不对右边表达式进行计算了。

C++中m++==n是什么意思?
++是自加,==是判断是否等于 &&取或 就是两个都为真就真 一假全假 出了++是数值运算 其他就跟> <号一样是判断真假的!

c语言中a&&b+c||b-c是什么意思
这是一个逻辑判断,含义是(a 不为0并且b+c不为0)或者b-c不为0,那么就是真,操作方法如下:1、首先打开devc++编辑器,定义两个变量a和b并赋值。2、第一个关系运算符符大于号(>)。3、第二个关系运算符大于等于(>=)。4、第三个运算符小于(<)。5、第四个运算符小于等于(<=),第...

C++程序代码:m=a>b?a:b;的含义
意思是为m赋值,所附的值由后面的表达式决定,后面的表达式是一个条件判断句:a>b时,取a的值,否则取b。总体的结果就是,比较a、b,a>b时,m=a,否则m = b;也就是说,m取a、b中的较大值。

(m=a==b)||(n=c==d);m和n的值则么是1,0呀?
a==b是真,真是1所以把1赋值给m 因为是||,因为m是1,所以或完的值一定是1 c++有个抄近路原则,式子值定下来了,后面的运算就不做了,所以n=c==d这个式子没有做,于是n的值不变

c++中&&表示什么?
运算符左右两边都需要表达式,在关系运算中表示“与”,比如a==1&&b==2,a==1和b==2同时为真,表达式就为真,否则为假。而&既是双目又是单目。双目时表示“与”运算,mxff&mxff将两边数值按位求与,最后得出结果单目是表示取地址。c语言中&&是一种双目运算符,表示与运算,而当左边所给...

编程m=(a>b)?a:b是什么意思
这是一个三目运算符 判断()里面的是否成立,成立就返回:前的,不成立就返回:后面的。相当于 void x(){ if(a>b)return a;else return b;} m=x();当然,括号里面只要是表达式就行,不一定必须和a,b有关。用if语句也可以达到相同的效果,但是显然这样更快捷方便。

坐等C++高手,都是一些简单的题,高人帮帮我吧,急用。现在没分了,各位帮...
A) x>=5 or x<=0 B) x>=0|x<=5 C) x>=5 &&x<=0 D) x>=5‖x<=0 4.设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为(B )A) 1 B)2 C)3 D)0 5.main(){ int a=3;printf(“%d\\n”,(a...

相似回答