|和||的区别,C语言|和||的区别详解

|和||的区别,C语言|和||的区别详解,第1张

概述在 C 语言中,||是 逻辑 *** 作符 (或),它的 *** 作数是布尔型,即只有0(表示 false)和1(表示 true)两个数值。 C 语言规定,在逻辑运算中,所有非 0 的数值都被看成 1 处理。 而|是 位 *** 在 C 语言中,“||”是逻辑 *** 作符(或),它的 *** 作数是布尔型,即只有“0”(表示 false)和“1”(表示 true)两个数值。C 语言规定,在逻辑运算中,所有非 0 的数值都被看成 1 处理。

而“|”是位 *** 作符(或),其 *** 作数是位序列。位序列可以是字符型、整型与长短整型等(通常情况下选择无符号整型)。在位运算中,相应的位之间进行逻辑运算,因此,从逻辑上讲,位运算过程包含多个逻辑运算过程。

下面通过一个示例来了解两者之间的区别
#include <stdio.h>int main (voID){    unsigned int x = 0x1101;    unsigned int y = 0x1100;    /*逻辑 *** 作*/    printf("sizeof(x || y): %d\n",sizeof(x || y));    if(x||y)    {        printf("x || y : %d(True) \n",x||y);    }    else    {        printf("x || y : %d(False) \n",x||y);    }    /*位 *** 作*/    printf("sizeof(x | y): %d\n",sizeof(x | y));    printf("x | y : %x \n",x|y);    return 0;}
因为变量 x 与变量 y 都不为 0,所以执行语句 if(x||y) 返回 1。而当执行 x|y(即 1101|1100)时,相应的位之间逐一地进行逻辑运算(或),因此所得到的结果为 1101。

程序运行结果为:
sizeof(x || y): 4
x || y : 1(True)
sizeof(x | y): 4
x | y : 1101 总结

以上是内存溢出为你收集整理的|和||的区别,C语言|和||的区别详解全部内容,希望文章能够帮你解决|和||的区别,C语言|和||的区别详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1235584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存