c语言中“||”是什么意思?

在c语言中,“||”的意思:或;表示逻辑操作符(或)。它的操作数是布尔型,即只有“0”(false)和“1”(true)两个数值。C语言规定,在逻辑运算中,所有非0的数值都被看做1处理。

一般用法是:

 if(表达式1 || 表达式2)

满足括号里其中一个,整个表达式就为真true,就满足if判定的条件,可以执行if{}里的语句。

扩展知识

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

下面我们通过一个示例来了解两者之间的区别。

#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

推荐文章
zip是什么格式?

ZIP文件格式是一种数据压缩和文档储存的文件格式,通常使用后缀名“.zip”,它的MIME格式为application/zip。当前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开

Spring Cloud Hystrix的实时监控功能

在微服务架构中,Hystrix除了实现容错外,还提供了实时监控功能。在服务调用时,Hystrix会实时累积关于HystrixCommand的执行信息,比如每秒的请求数、成功数等。 更多的指标信息请查

Turbo C 2.0下载地址和安装教程(图解)

TurboC是美国Borland公司开发,应用于DOS平台上的一个C语言集成开发环境,它集编辑、编译,链接于一身,使得C语言的编辑,调试和测试都非常简捷,编译和链接速度极快,使用也很方便。 Turb

C语言for循环(for语句)详解

除了while循环,C语言中还有for循环,它的使用更加灵活,完全可以取代while循环。 上节我们使用while循环来计算1加到100的值,代码如下: #include intmain(){

Go语言定时器实现原理及作用

对于任何一个正在运行的应用,如何获取准确的绝对时间都非常重要,但是在一个分布式系统中我们很难保证各个节点上绝对时间的一致性,哪怕通过NTP这种标准的对时协议也只能把时间的误差控制在毫秒级,所以相对时间

Python打包的发展历程

Python打包一开始可能有些难以理解,其主要原因是不了解创建Python包的正确工具。但不管怎样,一旦创建好第一个包,就会发现其实它并没有想象的那么难。 即便你对将代码开源分发不感兴趣,也应该知道

网站导航该如何设置?

网站导航用来连接到网站的重要页面,一般分为以下几种类型。 主导航 网站主导航一般就是放在网站最上面,是网站的栏目或主要内容的导入链接。一般情况下,导航上的栏目或内容是这个网站最主要的内容,也是除首页

如何学习新的编程语言?

一名软件工程师的最大挑战就是使自己的技术栈跟得上技术的发展,而在这个技术飞速发展的时代,保证自己不被淘汰的唯一方法就是不断学习。 那么,程序员需要掌握多门编程语言吗?很多初学者都被这个问题所困扰。

CREATEFUNCTION CREATEFUNCTIONsp_name([func_parameter[...]]) RETURNStype [characteristic...]routine_b

静态链表及其创建(C语言实现)

《顺序表和链表优缺点》一节,我们了解了两种存储结构各自的特点,那么,是否存在一种存储结构,可以融合顺序表和链表各自的优点,从而既能快速访问元素,又能快速增加或删除数据元素。 静态链表,也是线性存储结

uid和cuid的区别是什么?

uid和cuid的区别UID卡(国外称GEN1)所有区块可被重复读写卡片ID可改且使用后门指令更改IDID可被重复修改响应后门指令(意味着可被使用后门指令检测是否为克隆卡的机器发现)CUID卡(国外称

什么是内存

《操作系统的存储结构》一文讲过,内存是现代计算机系统执行的中心。内存是一个大的字节数组,大小从数十万到数十亿。每个字节都有地址。内存是个快速访问的数据仓库,并为CPU和I/O设备所共享。中央处理器在获

JSP clear() 示例

Linux write命令:向其他用户发送信息

在服务器上,有时会有多个用户同时登录,一些必要的沟通就显得尤为重要。比如,我必须关闭某个服务,或者需要重启服务器,当然需要通知同时登录服务器的用户,这时就可以使用write命令。 write命令的信

Hibernate addEntity方法:将别名和实体类联系

addEntity方法用于将SQL表的别名和实体类联系起来,并确定查询结果集的形态。 语法1 addEntity(ClassentityClass) 参数说明: entityClass:用于指

Java getDriver(Stringurl) url:dbc:subprotocol:subname形式的数据库URL。 示例 Class.forName("com.mysql.jdbc.

学习Java前一定要掌握这几个方法,事半功倍!

有人说,Java一堆知识点,最开始学的时候就会很迷茫,根本不知道方向在哪里,抱着一本书一页一页的翻。学完了,写个程序,做个项目,啥都不知道,和没学一样。 “学了四年的计算机课程,我们班大多数同学都不

Unity 3D Background Color控件

Unity3D publicstaticvarbackgroundColor:Color;JavaScript functionOnGUI(){ GUI.backgroundColor=Colo

Linux useradd命令详解:添加新的系统用户

Linux系统中,可以使用 useradd命令新建用户,此命令的基本格式如下: [root@localhost~]#useradd[选项]用户名 该命令常用的选项及各自的含义,如表1所示。 表

jQuery removeClass()方法删除class

在jQuery中,我们可以使用removeClass()方法来为元素删除一个class。 语法: $().removeClass("类名") 举例: .select