有意思的C语言运算符

在C语言中,运算符用于执行程序代码运算,会针对两个或者两个以上操作数进行运算。比如:5 - 2,它的操作数是 5 和 2,而运算符则是 “-”。常见的运算符可大致分为 4 种类型:算术运算符、关系运算符、赋值运算符和逻辑运算符;它优先级从低到高的顺序为:赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符;下面对这4种类型一一讲解。

1、赋值运算符

赋值运算符可分为简单赋值、复合算术赋值和复合位运算赋值。

1、1 简单运算符只有一个 “=”,它的用法可用如下例子表示:

int n = 2;

1、2 复合算术赋值运算符有 5 个,分别为 “ =”, “-=”, “*=”, “/=”, “%=”,它们的用法可用如下例子表示:

int j = 1;
j  = 2; //等同于 j = j   2,表示j的值加 2 后再赋值给j
j -= 2; //等同于 j = j - 2,表示j的值减 2 后再赋值给j
j *= 2; //等同于 j = j * 2,表示j的值乘以 2 后再赋值给j
j /= 2; //等同于 j = j / 2,表示j的值除以 2 后再赋值给j
j %= 2; //等同于 j = j % 2,表示j的值除以 2 后再赋值给j

1、3 复合位运算赋值运算符有 5 个,参与运算的量,按二进制位进行运算,分别是 “&=”, “|=”, “^=”, “>>=”, “<<=”,它们的用法可用如下例子表示:

int y = 2; //相应的二进制数为0b10
int num = 1; //相应的二进制数为0b01
y &= num; //等同于 y = y & num,此时int类型y的值为0,二进制y的值为0b0
y |= num; //等同于 y = y | num,此时int类型y的值为3,二进制y的值为0b11
y ^= num; //等同于 y = y ^ num,此时int类型y的值为3,二进制y的值为0b11
y >>= num; //等同于 y = y >> num,表示y向右移num位再赋值给y,此时int类型y的值为1,二进制y的值为0b01
y <<= num; //等同于 y = y << num,表示y向左移num位再赋值给y,此时int类型y的值为2,二进制y的值为0b10

2、逻辑运算符

逻辑运算符有 3 个,它们分别是 “&&”、“||” 和 “!”,“!” 表示非,取反的意思;在这里拓展一个知识点,在 C 语言中,用表达式等于0表示布尔值的假(0),用不等于0的表达式表示布尔值的真(1);逻辑运算符的用法可用如下例子所示:

int j,j2,j3 ;
int k = 20;
j = (3 - 4) && (k = 2); //(3 - 4)等于-1,视为真;(k = 2)中k等于2,视为真,所以j为真,j = 1
j2 = (0) || (k = 2); //(0)为假,(k = 2)中k等于2,视为真;所以j2就为真,j2 = 1
j3 = !k; //k的值为2,视为真,!k就为假,所以j3为假,j3的值为0

用代码做例子后,我们进行一下总结,“&&” 逻辑运算符左右两边的表达式都为真时,那么整个表达式就为真,否则为假;如果 “&&” 逻辑运算符左边的表达式为假时,右边的表达式就不会执行。“||” 逻辑运算符左右两边的表达式至少有一个为真时,整个表达式就为真,否则为假;如果 “||” 逻辑运算符左边的表达式为真时,右边的表达式不会执行。

3、关系运算符

关系运算符有 6 个,分别是 “>”、“<”、“=”、 “>=”、“<=”、“!=”,它们一般用于 2 个或者 2 个以上数据作比较;它们的用法可用如下例子所示:

int a,b,c,d,e,f;a = 3 > 4; //3不大于4,所以a为0
b = 4 < 5; //4小于5,所以b为1
c = 4 == 4;
d = 5 >= 3;
e = 7 != 8;
f = 10 <= 12;

4、算术运算符

算术运算符有 7 个,它们分别是 “ ” 、“-” 、“” 、“/”、 “%” 、“ ” 和 “--”,由于 “ ” 和 “-” 都比较简单,所以只对 “” 、“/”、 “%” 、“ ” 和 “--” 进行讲解;举例之前先拓展一个知识点,C语言的基本数据类型的优先级为 byte,short,char—> int —> long—> float —> double,byte、short 和 char 这 3 个为同一级别;"*" 表示乘法运算符,“/” 为除法运算符,“%” 为求余数运算符,“ ” 为自增运算符,“--”为自减运算符。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

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

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

相关文章

java反向映射_opencv 直方图和直方图反向映射

histogram使用np进行直方图像素统计通过histogram对图像的三个通道分别进行一维直方图统计&#xff0c;由于被统计的数组必须是一维的&#xff0c;所以使用ravel将二维数组转换为一维数组&#xff0c;通过range参数指定统计区间为0--256&#xff0c;bin参数指定将统计区间分为2…

新手学习C语言编程的8个致命错误,你中招了吗?

序言C语言的最大特点是&#xff1a;功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格&#xff0c;这就给编程人员留下“灵活的余地”。但由于这个灵活给程序的调试带来了许多不便&#xff0c;尤其对初学C语言的人来说&#xff0c;经常会出一些连自己都不…

jpa 实体图查询_JPA实体图

jpa 实体图查询JPA 2.1的最新功能之一是可以使用实体图指定获取计划。 这很有用&#xff0c;因为它允许您自定义使用查询或查找操作检索的数据。 在使用中大型应用程序时&#xff0c;通常以不同的方式显示来自同一实体的数据。 在其他情况下&#xff0c;您只想选择最小的信息集…

C语言程序控制语句——while

while语句while &#xff08;表达式&#xff09; 语句当表达式为非0值&#xff08;真&#xff09;时&#xff0c;执行while循环体中的语句&#xff0c;如此往复&#xff0c;直到表达式的值等于0&#xff08;假&#xff09;&#xff0c;循环结束。如以下示例程序&#xff0c;循环…

kettle 资料_Kettle的使用-初级

本文从kettle的简介、下载、安装、初级使用来展开。1.kettle是什么&#xff1f;kettle是一款开源的ETL工具。可以运行在Windows和linux上。2.下载地址https://community.hitachivantara.com/s/article/downloads3.安装因为Kettle是基于Java开发的&#xff0c;所以要先安装jdk环…

C语言 | 语句概述

C语言语句的作用和分类1、9种控制语句if&#xff08;&#xff09;...else.. //条件语句 for&#xff08;&#xff09;... //循环语句 while&#xff08;&#xff09;... //循环语句 do...while&#xff08;&#xff09; //循环语句 continue //结束本次循环语句 break //中止执…

linux 查看日志_干货 | 名企高频考点之谈谈Linux日志查看方式都有哪些

点击蓝字关注我哦以下是本期干货视频视频后还附有文字版本哦▼《名企高频考点-谈谈Linux日志查看方式都有哪些》▼ps&#xff1a;请在WiFi环境下打开&#xff0c;如果有钱任性请随意0.概述在我们面试各大公司的时候&#xff0c;关于Linux往往最容易问到的问题之一就是Linux指令…

jvm7 jvm8_自我修复的JVM

jvm7 jvm8这篇帖子是关于一个应用程序的示例&#xff0c;其中解决每个IT问题的第一个解决方案-“您是否尝试过将其关闭并重新打开”-可能适得其反&#xff0c;弊大于利。 我们不需要关闭电源&#xff0c;而是拥有可以自愈的应用程序&#xff1a;它在一开始就失败了&#xff0c…

实例讲解C语言的位运算

C语言位运算有6种&#xff1a; &&#xff0c; | , ^(异或)&#xff0c; <<(左移)&#xff0c;>>(右移)。注意&#xff1a;参与位运算的元素必须是int型或者char型&#xff0c;以补码形式出现。1.按位与&&运算常应用于&#xff1a;迅速清零保留指定位判…

java字节码执行原理_《Java 底层原理》Java 字节码详解

前言我们在开发中会遇到一些Java的执行超出我们的想象&#xff0c;但是又不知道他为什么会这样执行&#xff0c;这个时候我们就需要能够知道他编译后Class文件是什么样子的&#xff0c;并且理解字节码的含义。Java字节码的原理进制class文件就是字节码文件&#xff0c;直接是打…

C语言学习笔记--位运算

这一节主要说的是位运算&#xff0c;计算机中的执行速度&#xff1a;位运算 > 加减 > 乘除 > 求余位运算就是将数字转换成二进制后进行运算&#xff0c;之后再将数字转换成原来的进制与运算&#xff1a;当两个数相与时&#xff0c;只有都为l的时候结果才为1&#xff0…

mathtype运行时错误48_在office中无法使用MathType该怎么办?

想必大家都遇到过在office中无法使用MathType的情况&#xff0c;那么遇到这种情况的话大家应该怎么来解决呢&#xff1f;首先这样的现象一般为&#xff1a;word或者ppt中没有mathtype选项&#xff0c;或者选项打开提示文件未找到&#xff1a;MathPage.WLL。错误提示或者甚至运行…

谈谈C语言中的杂项运算符

在C语言中&#xff0c;还有一些重要的运算符&#xff0c;例如&#xff1a;sizeof()、&、* 、 ?: 。我们把上述的这些运算符归为杂项运算符&#xff0c;下面我将详细介绍这些杂项运算符。下面的表格列出了 C 语言支持的所有杂项运算符&#xff1a;运算符解释例子sizeof()返…

jenkins java_具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道

jenkins java技术提示&#xff03;54展示了如何Arquillianate&#xff08;Arquillianize&#xff1f;&#xff09;一个现有的Java EE项目并在WildFly在已知主机和端口上运行的远程模式下运行这些测试。 技术提示&#xff03;55展示了当WildFly在OpenShift中运行时如何运行这些测…

matplotlib 折线图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图

今天咱们还是接着上次的话题&#xff0c;继续和大家聊聊关于Python绘图相关的东东哦&#xff0c;上次已经和大家讨论完了如何给自己所绘制的图表中添加装饰线以及修改装饰线密度的方法&#xff0c;今天呢&#xff0c;咱们再聊点的新的东东哦&#xff0c;还是和大家继续深耕Pyth…

C语言 | 赋值与运算符

本章以鸡兔同笼为例&#xff0c;讲解赋值语句和一些简单的运算符。相关知识点&#xff1a;scanf(" %d " , &i ); 输入函数&#xff0c;表示输入一个整数&#xff08;%d&#xff09;&#xff0c;赋值给 i&#xff08;&i&#xff09;C语言中加法运算符为 减法…

响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单

响应式多级菜单 侧边菜单栏最近&#xff0c;我不得不使用JSF 2.2创建一个响应式多级菜单。 要求&#xff1a;菜单应&#xff1a; 从后端使用动态结构创建 React灵敏&#xff0c;例如对桌面和移动设备友好 有带有导航链接的子菜单项 支持触摸事件 支持键盘辅助功能 PrimeF…

C语言中的头文件

头文件是扩展名为 .h 的文件&#xff0c;包含了 C 函数声明和宏定义&#xff0c;被多个源文件中引用共享。有两种类型的头文件&#xff1a;程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件&#xff0c;需要使用 C 预处理指令 #include 来引用它。前面我们已经看…

set trans 必须是事务处理的第一个语句_MySQL中特别实用的几种SQL语句送给大家

在写SQL时&#xff0c;经常灵活运用一些SQL语句编写的技巧&#xff0c;可以大大简化程序逻辑。减少程序与数据库的交互次数&#xff0c;有利于数据库高可用性&#xff0c;同时也能显得你的SQL很牛B&#xff0c;让同事们眼前一亮。实用的SQL1.插入或替换如果我们想插入一条新记录…

C语言预处理命令总结

预处理指令是以#号开头的代码行&#xff0c;# 号必须是该行除了任何空白字符外的第一个字符。# 后是指令关键字&#xff0c;在关键字和 # 号之间允许存在任意个数的空白字符&#xff0c;整行语句构成了一条预处理指令&#xff0c;该指令将在编译器进行编译之前对源代码做某些转…