c语言常见操作符及操作符优先级

目录

  • 概述
    • 1. 算术操作符:
    • 2. 关系操作符:
    • 3. 逻辑操作符:
    • 4. 位操作符:
  • *常见操作符优先级*

  • 概述

C语言中有多种操作符,用于执行不同的操作。下面是一些常见的C语言操作符以及示例代码:

1. 算术操作符:

  • 加法操作符(+):用于将两个值相加。
int a = 5;
int b = 3;
int result = a + b;  // result的值为8
  • 减法操作符(-):用于将第一个值减去第二个值。
int a = 5;
int b = 3;
int result = a - b;  // result的值为2
  • 乘法操作符(*):用于两个值相乘。
int a = 5;
int b = 3;
int result = a * b;  // result的值为15
  • 除法操作符(/):用于将第一个值除以第二个值。
int a = 10;
int b = 2;
int result = a / b;  // result的值为5
  • 取余操作符(%):用于求两个值相除后的余数。
int a = 10;
int b = 3;
int result = a % b;  // result的值为1

2. 关系操作符:

  • 相等操作符(==):用于判断两个值是否相等,如果相等则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a == b);  // result的值为0
  • 不相等操作符(!=):用于判断两个值是否不相等,如果不相等则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a != b);  // result的值为1
  • 大于操作符(>):用于判断第一个值是否大于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a > b);  // result的值为1
  • 小于操作符(<):用于判断第一个值是否小于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a < b);  // result的值为0
  • 大于等于操作符(>=):用于判断第一个值是否大于等于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a >= b);  // result的值为1
  • 小于等于操作符(<=):用于判断第一个值是否小于等于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a <= b);  // result的值为0

3. 逻辑操作符:

  • 逻辑与操作符(&&):用于判断两个条件是否同时成立,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a > 0 && b > 0);  // result的值为1
  • 逻辑或操作符(||):用于判断两个条件是否至少有一个成立,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a > 0 || b > 0);  // result的值为1
  • 逻辑非操作符(!):用于取反一个条件的值,如果条件为真,则返回假(0),如果条件为假,则返回真(1)。
int a = 5;
int result = !(a > 0);  // result的值为0

4. 位操作符:

  • 按位与操作符(&):对两个值进行按位与操作。
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int b = 3;   // 二进制表示为:0000 0011
unsigned int result = a & b;  // result的值为1,二进制表示为:0000 0001
  • 按位或操作符(|):对两个值进行按位或操作。
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int b = 3;   // 二进制表示为:0000 0011
unsigned int result = a | b;  // result的值为7,二进制表示为:0000 0111
  • 按位异或操作符(^):对两个值进行按位异或操作。
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int b = 3;   // 二进制表示为:0000 0011
unsigned int result = a ^ b;  // result的值为6,二进制表示为:0000 0110
  • 左移操作符(<<):将一个值左移指定的位数。
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int result = a << 2;  // result的值为20,二进制表示为:0001 0100
  • 右移操作符(>>):将一个值右移指定的位数。
unsigned int a = 20;   // 二进制表示为:0001 0100
unsigned int result = a >> 2;  // result的值为5,二进制表示为:0000 0101

以上是一些常见的C语言操作符及其示例代码,除此之外C语言中还有其他类型的操作符。

常见操作符优先级

C语言中常见操作符的优先级从高到低如下:

  1. 一元运算符:
    ++ (自增), – (自减), + (正号), - (负号), ! (逻辑非), ~ (按位取反), * (指针解引用), & (取地址), sizeof (获取变量类型大小)


  2. 乘法/除法/取余:
    *(乘法), / (除法), % (取余)


  1. 加法/减法:
    +(加法), - (减法)

  1. 移位运算符:
    << (左移), >> (右移)

  1. 关系运算符:
    < (小于), > (大于), <= (小于等于), >= (大于等于)

  1. 相等性运算符:
    == (等于), != (不等于)

  1. 位与运算符:
    & (按位与)

  1. 位异或运算符:
    ^ (按位异或)

  1. 位或运算符:
    | (按位或)

  1. 逻辑与运算符:
    && (逻辑与)

  1. 逻辑或运算符:
    || (逻辑或)

  1. 三元条件运算符:
    ? : (条件运算符)

  1. 赋值运算符:
    = (赋值), +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=


注意,这只是一个常见操作符的优先级逐级排序,具体使用时还需要根据具体运算表达式进行适当的括号添加,以确保运算顺序符合预期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/701716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day04 嵌入式---基本定时器

定时器概述 1、软件定时原理 使⽤纯软件的⽅式实现定时功能。 存在的问题&#xff1a;定时不太精准。CPU死等。 1&#xff09;压栈出栈需要花费时间 2&#xff09;ARM流⽔线体系架构的原因 2、定时器定时原理 使用精准的时基&#xff0c;通过硬件方式&#xff0c;实现定…

区块链笔记(三)

超级账本 如果说比特币为代表的加密货币提供了区块链技术应用的原型&#xff0c;以太坊为代表的智能合约平台延伸了区块链技术的适用场景&#xff0c;那么面向企业场景的超级账本项目则开拓了区块链技术的全新阶段。超级账本首次将区块链技术引入到了联盟账本的应用场景&#…

上传到服务器的图片资源如何读取

说两种方式&#xff0c;直接上代码&#xff1a; 1.前提图片已经存储在服务器上&#xff0c;携带图片地址过去通过输入输出流进行图片下载查看 前端&#xff1a; <img v-else :src"/chat/download?namemessage.url"/>后端&#xff1a; GetMapping("/dow…

3d Slicer软件一种新的体绘制方式

vtk Multi-Volumne试验性体绘制方式&#xff0c;细节更丰富&#xff0c;影像更清晰&#xff0c;值得学习使用

利用Spring Boot实现MQTT在物联网中的应用

在物联网&#xff08;IoT&#xff09;领域&#xff0c;消息队列遵循发布/订阅模型的MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议变得越来越受欢迎。本文将深入探讨如何在Spring Boot中使用MQTT&#xff0c;并讨论其与其他中间件的集成以及在物联网中…

前端本地化部署

前言 现在成熟的前端团队里面都有自己的内部构建平台&#xff0c;我司云长便是我们 CI/CD 的提效利器。我先来简单介绍下我司的云长&#xff0c;此云长非彼云长&#xff0c;云长主要做的是&#xff1a;获取部署的项目&#xff0c;分支&#xff0c;环境基本信息后开始拉取代码&…

Java ExecutorService 线程池(IO密集型、CPU密集型建议)

注&#xff1a;这是我很久之前在博客里面看到的&#xff0c;忘记是哪一篇了&#xff0c;分享一下 测试响应耗时 private String test1() {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}return "test1";}private String test2() …

java基于redis实现分布式锁

文章目录 前言一、redis二、Redisson1.引入库2. 分布式锁3. 锁自动续期 总结 前言 上篇文章介绍了Java中锁的应用,在SpringBoot单体应用中完全够用,但是SpringCloud微服务集群中就力所不及了。 我的使用场景是某些微服务应用中使用spring注解的形式来完成定时任务的功能,服务集…

pip换源

windows环境下&#xff1a; 比如windows账号是 admin 那么建立 admin主目录下的 pip子目录&#xff0c;在此pip子目录下建立pip的配置文件&#xff1a;pip.ini c:\users\admin\pip\pip.ini # coding: GBK [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple [ins…

C++-带你走进多态(1)

1. 多态的概念 1.1 概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 举个栗子&#xff1a;比如买票这个行为&#xff0c;当普通人买票时&#xff0c;是全价买票&am…

四、ChatGPT的回答从哪里来?—我耀学IT

ChatGPT回答问题时通常比问题本身更长&#xff0c;这是因为它需要通过补充额外的信息来提供完整的答案。它的回答来源于对现有信息的抽取和整合&#xff0c;那么具体是怎么进行抽取和整合的呢&#xff0c;下面我们带着这个疑问来详细讨论一下它的工作原理。首先&#xff0c;英语…

Jenkins解决Host key verification failed (2)

Jenkins解决Host key verification failed 分析原因情况 一、用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时&#xff0c;OpenSSH会核对公钥。如果公钥不同&#xff0c;OpenSSH会发出警告&#xff0c;避免…

Spring中关于事务的一些方方面面

事务隔离级别&#xff1a; 先了解一些事务隔离级别有哪些&#xff1a; 未提交读(Read Uncommitted)&#xff1a; 允许脏读&#xff0c;也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed)&#xff1a; 只能读取到已经提交的数据。Oracle等多数数据库默…

车载电子电器架构 —— OEM基础技术概念开发流程

车载电子电器架构 —— 基础技术概念开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

vue间的组件通讯

文章目录 父子组件通讯&#xff08;通过props和$emit&#xff09;兄弟组件通讯&#xff08;使用事件总线&#xff09;&#xff1a;跨级组件通讯&#xff08;使用provide/inject&#xff09;&#xff1a;使用Vuex状态管理&#xff1a;使用$refs引用组件&#xff1a; 父子组件通讯…

广度优先-BFS

介绍 以广度为准&#xff0c;先访问从岔道能直接到达的所有结点&#xff0c;然后再按这些结点被访问顺序访问它们能直接到达的结点&#xff0c;直至全部遍历完。 求矩阵中元素上下左右均为1所组成的块的数目 #include <iostream> #include <queue> using namesp…

写点技术人员离职的心得

离职的心态 人们在辞退或者被辞退都会对原公司抱有意见&#xff0c;因为疫情&#xff0c;公司业务告急&#xff0c;工资发不出来&#xff0c;我也失去了工作。虽然情绪上难免会有波动&#xff0c;但是转念一想&#xff0c;我应该用开心的心态来看待这次辞职&#xff0c;并希望…

Linux之JAVA环境配置jdkTomcatMySQL

目录 一. 安装jdk 1.1 查询是否有jdk 1.2 解压 1.3 配置环境变量 二. 安装Tomcat&#xff08;开机自启动&#xff09; 2.1 解压 2.2 启动tomcat 2.3 防火墙设置 2.4 创建启动脚本&#xff08;设置自启动&#xff0c;服务器开启即启动&#xff09; 三. MySQL安装&#xff08;…

vscode使用restClient实现各种http请求

vscode使用restClient实现各种http请求 一&#xff0c;安装插件 首先&#xff0c;我们要在vscode的扩展中&#xff0c;搜索rest Client&#xff0c;然后安装它&#xff0c;这里我已经安装过了。 安装后&#xff0c;我们就可以使用rest client插件进行http各种操作了。 二&…

Unity接入SQLite (二):SQL常用命令

在上一篇上《Unity接入SQLite (一):SQLite介绍-CSDN博客》中已经介绍了如何在Unity中接入SQLite插件&#xff0c;并且创建了一个db文件。如何进行数据库的读取&#xff0c;其中SQL命令非常重要 1.SQL支持的数据类型 SQL数据类型是用来定义数据库中存储的数据的类型&#xff0…