在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 个为同一级别;"*" 表示乘法运算符,“/” 为除法运算符,“%” 为求余数运算符,“ ” 为自增运算符,“--”为自减运算符。

声明:

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

有意思的C语言运算符相关推荐

  1. 利用c语言设置密码错误循环,c语言运算符优先级与while循环案例

    sizeof可以获取数据类型的内存中的大小(字节) #include #include // standared 标准 // input output 输入/输出 // header 头 .h头文件 ...

  2. C语言 —— 运算符的优先级

    C 语言的符号众多,由这些符号又组合成了各种各样的运算符.既然是运算符就一定有 其特定的优先级,下表就是 C 语言运算符的优先级表: 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数 ...

  3. 关于C语言运算符优先级的记忆技巧是什么?

    关于C语言运算符优先级的记忆技巧是什么? (1)先(括号)内层,后(括号)外层. (2)先函数,后运算. (3)先算术,后关系,再逻辑. (4)先乘除,后加减. (5)先左,后右. (6)搞不清,加括 ...

  4. new是不是c语言运算符优先级表,C语言运算符优先级列表(超详细)

    <C语言运算符优先级列表(超详细)>由会员分享,可在线阅读,更多相关<C语言运算符优先级列表(超详细)(7页珍藏版)>请在人人文库网上搜索. 1.本篇文章是对C语言中运算符的优 ...

  5. c语言二元运算符大全,C语言运算符大全

    C语言运算符 for<{3个条件语句}循环> while<{循环> do while<{前do循环体语句,后while条件语句}循环> if<{else补充语 ...

  6. C 语言运算符优先级

    C 语言运算符优先级 优先级 运算符 描述 结合性 1 ++ -- 后缀自增与自减 从左到右 () 函数调用 [] 数组下标 . 结构体与联合体成员访问 -> 结构体与联合体成员通过指针访问 ( ...

  7. c语言字符运算 =,C语言运算符

    原标题:C语言运算符 一.前言 在嵌入式开发中,我们一般选用C语言作为开发语言.一个主要的原因在于C语言提供了大量的运算符,比如我们对硬件的操作一般涉及到对位的操作,而C语言就提供了这样的运算符,这是 ...

  8. C语言运算符优先级列表

    本篇文章是对C语言中运算符的优先级进行了详细的分析介绍,需要的朋友参考下 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! ...

  9. 说说C语言运算符的“优先级”与“结合性”

    本文链接:https://blog.csdn.net/steedhorse/article/details/5903974 论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或 ...

最新文章

  1. Apache软件基金会宣布Apache Unom成为顶级项目
  2. BZOJ 2073: [POI2004]PRZ( 状压dp )
  3. 503 service unavailable错误提示如何解决
  4. LeetCode 543二叉树的直径-简单
  5. Linux命令之乐--sed
  6. 无线 iphone客户端测试白皮书(二)
  7. Android开发之自定义的ProgressDialog
  8. 简述单片微型计算机屏蔽的作用,单片机原理及应用试题库 - 答案
  9. (数据库系统概论|王珊)第九章关系查询处理和关系优化-第二节:查询优化
  10. 深入浅出MYSQL查询索引失效
  11. 单片机原理及接口技术--01什么是单片机
  12. [渝粤教育] 信阳师范学院 奥尔夫音乐教育 参考 资料
  13. hdu2476 字符串A-字符串-B
  14. 内容分发网络(CDN)
  15. 【Anaconda】修改conda默认envs_dirs和pkgs_dirs
  16. k8s——kubeadm工具使用
  17. cadence17.2输出BOM清单
  18. ride不能启动解决办法
  19. 高校公寓管理系统的设计与实现
  20. 使用Java对中文首字母进行排序

热门文章

  1. 如何为您的AWS账户设置多因素身份验证(MFA)
  2. executor线程池框架_如何使用Java 5 Executor框架创建线程池
  3. neo4j图形界面_图形处理:betweeness中心性– neo4j的密码与graphstream
  4. 首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串
  5. ssh 看apache_使用Apache KeyedObjectPool的ssh连接池
  6. NetBeans Java EE技巧#1 –数据库中的实体类
  7. javax.cache_新的Java缓存标准(javax.cache)
  8. Openshift:使用Java 8在Wildfly 8.2.0上构建Spring Boot应用程序
  9. 使用Java编写简单的老虎机游戏
  10. 在Spring JDBC中添加C3PO连接池