21xrx.com
2024-11-22 07:08:41 Friday
登录
文章检索 我的文章 写文章
C语言中&&左侧为假时会继续判断右侧真假
2023-06-16 09:42:01 深夜i     --     --
C语言 逻辑运算符 短路

在C语言中,有一种逻辑运算符叫做“与(&&)”。当左侧为假时,常见的编程语言都会因为短路而不计算右侧,直接返回“假”。但是,在C语言中,当左侧为假时,右侧仍然会被计算判断真假,这就可能会导致一些意想不到的结果。

举个例子,假设我们有如下代码:


int a = 0;

if (a == 1 && ++a == 2)

{

  printf("Condition is true");

}

根据常见编程语言的规则,因为左侧a==1为假,右侧++a==2不会被计算,所以整个表达式的值为假,不会输出任何东西。但是在C语言中,右侧的表达式会被计算,导致a的值变成1,最后输出“Condition is true”。

因此,在C语言中,使用逻辑运算符“与”时要特别注意。如果左侧的表达式可能会为假,应当将左侧和右侧的计算分别放入括号内,以免出现意料之外的结果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复