专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

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

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/17 11:54:39       共计:3712 浏览
在 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
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:for循环及其注意事项,C语言使用for循环的注意事项总结 | ·下一条:C语言循环结构(while循环,for循环,do…while循环)

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有