a=b=c=1时++a||++b&&++c和++a&&++b||++c,++a&&++b&&++c的区别是啥?a、b、c的值又分别是多少???

如题所述

++a||++b&&++c根据于运算符优先级,即++a||(++b&&++c),又由于逻辑运算符的短路效应,所以只有a自增了1,最后,a=2,b=1,c=1



++a&&++b||++c根据于运算符优先级,即(++a&&++b)||++c,又由于逻辑运算符的短路效应,所以只有a和b自增了1,最后,a=2,b=2,c=1


++a&&++b&&++c,abc均自增1,最后,a=2,b=2,c=2

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-10-12

主要要了解C语言 || 和 && 的短路概念,如果值已经能决定整个表达式的值,就不会再往右继续运算了

编个demo试一下就知道了

#include<stdio.h>


int main(){

int a,b,c;

a=b=c=1;

++a||++b&&++c;

printf("a=b=c=1时++a||++b&&++c:\na=%d,b=%d,c=%d\n",a,b,c);

a=b=c=1;

++a&&++b||++c;

printf("a=b=c=1时++a&&++b||++c:\na=%d,b=%d,c=%d\n",a,b,c);

a=b=c=1;

++a&&++b&&++c;

printf("a=b=c=1时++a&&++b&&++c:\na=%d,b=%d,c=%d\n",a,b,c);

运行结果

...|++c,++a&&++b&&++c的区别是啥?a、b、c的值又分别是多少???_百度知...
++a||++b&&++c根据于运算符优先级,即++a||(++b&&++c),又由于逻辑运算符的短路效应,所以只有a自增了1,最后,a=2,b=1,c=1 ++a&&++b||++c根据于运算符优先级,即(++a&&++b)||++c,又由于逻辑运算符的短路效应,所以只有a和b自增了1,最后,a=2,b=2,c=1 ++a&&++b&&++c,abc均自...

a=b=c=1;++a||++b&&++c;执行后输出a,b,c各是多少
1 a=b=c=1;++a||++b&&++c;执行后输出a,b,c分别是2 1 1。2 ++a||++b&&++c;这个语句只会执行++a,++b&&++c不会执行。C语言在做||运算时,如果第一个操作数++a为真(非零),直接返回真,而不计算第二个操作数++b&&++c。

int a=b=c=1; ++a||++b&&++c; a= ,b= ,c= .
a\\b\\c初是1 后面的逻辑表达式本来是先算&&再算|| 但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式所以只运算++a,所以结果是a=2,b=1,c=1

...以下语句:++a||++b&&++c;则变量a的值是多少,b的是多少,
4).所以最后的结果就是a=2,b=1,c=1;5)代码如下 include<stdio.h> main(){int a,b,c;a=b=c=1;if(++a||++b&&++c)printf("%d,%d,%d\\n",a,b,c);} 6).你可以结合我所说的,在TC或者VC下调试一下;可惜我等级不够,要不然把结果图片也放上去,就这样吧。祝你好运!

c程序中输入: int a,b,c; a=b=c=1; ++a||++b&&++c; 执行后abc的值为什 ...
++a||++b&&++c是逻辑表达式,它的值只有“真”与“假”两种,常用“非零”和“零”来表示。++a||++b&&++c第一个逻辑操作符为||,它是“或”操作,就是说它两边的表达式只要有一边为“真”整个表达式的值就为真。而++a使a为2,这已为“真”了,所以整个表达式的值已经肯定为“真”了,|...

Int a,b,c a=b=c=1 ++a=++b&&++c a,b的值为多少.
++a=++b&&++c -> a=b&&c [此时a,b,c均为2]然后,因为赋值运算符‘=’的优先级要高于逻辑与运算符 '&&',所以执行赋值运算;a=b&&c -> 1 && c [此时a,b,c仍均为2]最后,执行逻辑运算:1 && c -> 1 [此时a,b,c还是均为2]故运行到最后,a,b的值均为2。大概就是这些,希望...

c语言为什么先算&&,再算||?
++a||++b&&++c;中,&&的优先级高,所以先算++b&&++c,再跟++a做||运算。于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。也就没有++b&&++c的运算。于是b,c的值还是都为1.这下明名为什么是a=2 b=1 c=1,而不是a,b,c都为2的原因...

C语言a=b=c=1,++a||++b||++c,a.b的值为多少。为什么
都是2。显然,a,b,c初值是1,后面那个运算中是先算++的,相当于(++a)||(++b)||(++c),于是a,b,c的值各增加了1,得2。

int a,b,c; a=b=c=1; ++a||++b&&++c ,请解来看看?
是不是++a|++b&++c 此时|(or)和 &(and)都是位运算,答案是 2 ++a ++b ++c为1 2&2=2 2|2=2 所以答案是2 你说的这个是逻辑运算符,答案是1(逻辑运算的答案只有0,1所以为1)

int a,b,c; a=b=c=1; ++a||++b&&++c。求a的值是多少?
执行inta,b,c;a=b=c=-1;++a&&++b||++c;后a,b,c值分别为 a是0 b是-1 c是0 因为++a&&++b||++c这个逻辑表达式 先计算&&因为++a是0所以这部分为0++b不执行 再计算||++c要计算所以c=0

相似回答