C语言if(1)&&(2) 怎么解释?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言if(1)&&(2) 怎么解释?相关的知识,希望对你有一定的参考价值。

若a=1并且b=2(执行该步操作后,b的值加1为3)。

逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
符号 功能
&& 逻辑与
|| 逻辑或
! 逻辑非
当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:
a=2,b=1;
a||b-1;
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。

这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。例如:
--Couter;
Couter--;
++Amount;
Amount++;
看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者减1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;
a =++num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先自增加1变为5,然后赋值给a,最终a也为5。b=num2++;这是把num2++的值赋给b,因为自增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为 9。
那么如果出现这样的情况我们怎么处理呢?
c=num1+++num2;
到底是c=(num1++)+num2;还是c=num1+(++num2);这要根据编译器来决定,不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。
参考技术A 这个写法是错误的。在C语言中整个逻辑表达式应该被完整地写在一个圆括号中。
所以,上述表达式应当写为:
if(1 && 2)
实际上,如果真就直接这么写的话,因为1和2都不为0,都是作为“真”来解读的,所以,括号内的值就是“真”,条件总是满足,这一部分就等同于没写,即直接执行后面所跟的语句。
如果是两个不同的逻辑表达式,则表示,如果 条件1 满足的条件下,条件2也同时满足,才执行后面的语句。
参考技术B

如果(1)成立并且(2)成立则。。。

如果(1)不成立,(2)就不做判断直接算不成立

参考技术C 1和2都表示逻辑真,所以if(1)&&(2)跟if (1)等价,if后面的语句要执行。

c语言中的 条件语句 if else

c语言中的 条件语句 if else 是什么意思?
有人能告诉我怎么使用这个条件语句吗?

if表示如果啊!作为条件语句。例如:if(a>b)max=a;表示如果a大于b即为真,执行max=a语句。如果a不大于b,则不执行if()语句,而直接执行下一句。(即max=a;的下一句)else和if是成对出现的,有else出现,必定有if语句,但有if语句可以没有else语句!举例来解释else的意思吧!例如:if(a>b)max=a;else max=b;该语句解释为如果a大于b,那么max=a,否则(即a小于b)max=b! 参考技术A 如果第一个条件不成立,其他的条件都用这种来表示。
例如:if(a<b)
printf("%d",b);
else
printf("%d",a);.
这个子程序是输出两个数中的大数。
参考技术B if是如果,else是否则 参考技术C if如果.....else除了.....

以上是关于C语言if(1)&&(2) 怎么解释?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中的 条件语句 if else

c语言if语句多个条件怎么写?

C语言判断汉字

帮我解释下C语言里for循环的条件表达式中小于和小于等于的区别

c语言递归函数

c语言中的条件语句if