目录

一、常见运算符

1.算术运算符:+、-、*、/、%、++、--

2.关系运算符:>、>=、<、<=、==、!=

3.逻辑运算符:&&、||、!(单目)

4.位运算符:&、|、^、~(单目)、<<、>>

5.(复合)赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=

二、特殊运算符

1.sizeof运算符:sizeof(表达式)

2.三目/条件运算符:(表达式1)?表达式2:表达式3

3.逗号运算符:表达式1,表达式2,……

4.下标运算符:[]

5.取地址运算符:&

6.地址引用运算符:*

7.结构体/共用体成员访问运算符: .

8.结构体/共用体指针成员访问运算符:->

9.小括号运算符:(表达式)、函数名(形参表)

10.强制类型转换运算符:(数据类型)表达式

三、总结


一、常见运算符

1.算术运算符:+、-、*、/、%、++、--

加、减、乘运算符:+、-、*与一般的运算一致(附案例代码)

#include<stdio.h>
int main()
{int a=3;int b=4;int c=0;c=a+b;//加号运算 printf("a+b=%d\n",c);c=a-b;//减号运算 printf("a-b=%d\n",c);c=a*b;//乘号运算 printf("a*b=%d\n",c);return 0;
} 

除号运算符:/

分母不能为0;分母为0,会报语法错误,也可能程序会直接崩溃!!!

相除结果只能保留整数部分;例如结果为3.3,实际保留结果为3

#include<stdio.h>
int main()
{int a=10;int b=3;int c=0;c=a/b;//除号运算,只能保留结果得整数部分;被除数b不能为0 printf("a/b=%d\n",c);return 0;
} 

取余运算符:%

结果为余数;取余运算的结果为两者相除的余数

浮点型数据不适用;取余操作只能对整数类型操作

#include<stdio.h>int main()
{int a=10;int b=3;int c=0;c=a%b;//取余运算,结果为两者相除的余数 printf("a/b=%d\n",c);return 0;
} 

自增、自减运算符:++、--

2.关系运算符:>、>=、<、<=、==、!=

六种关系运算符只在写法上与平常见到有所不同,作用是相同的,直接上代码感受就行。

#include<stdio.h>
int main()
{int a=10;int b=5;//可以改变a和b的值进行关系运算符的验证if(a>b)printf("a>b\n");if(a>=b)printf("a>=b\n");if(a<b)printf("a<b\n");if(a<=b)printf("a<=b\n");if(a==b)printf("a==b\n");if(a!=b)printf("a!=b\n");return 0;
} 

3.逻辑运算符:&&、||、!(单目)

&&:(表达式1)&&(表达式2)

表达式1和表达式2都为真,则为逻辑真

表达式1和表达式2有一个为假,或者全部为假,则为逻辑假

注意:当表达式1为假时,表达式2不再执行判断(表达式2语句不执行)。

#include<stdio.h>
int main()
{int a=10;int b=3;if((a<b)&&(b=a+b))//(a<b)为假,b=a+b不再执行 {printf("hello zaizai!\n");}printf("a=%d,b=%d\n",a,b);if((a>b)&&(b=a+b))//(a>b)为真,b=a+b执行 {printf("hello zaizai\n");}printf("a=%d,b=%d\n",a,b);return 0;
} 

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

表达式1和表达式2有一个为真,则为逻辑真

表达式1和表达式2全为假,则为逻辑假

注意:当表达式1为真时,表达式2不再执行判断(表达式2语句不执行)。

#include<stdio.h>
int main()
{int a=10;int b=3;if((a<b)||(b=a+b))//(a<b)为假,b=a+b执行 {printf("hello zaizai!\n");}printf("a=%d,b=%d\n",a,b);if((a)||(b=a+b))//(a)为真,b=a+b不再执行 {printf("hello zaizai\n");}printf("a=%d,b=%d\n",a,b);return 0;
} 

!:!(表达式)

非逻辑运算符是单目运算符;

取表达式的逻辑反;

#include<stdio.h>
int main()
{int a=10;int b=3;if(!(a==b))//a==b为逻辑假,取非则为逻辑真 {printf("hello zaizai!\n");}return 0;
} 

4.位运算符:&、|、^、~(单目)、<<、>>

位运算操作的都是存储在计算机中的二进制数据(移位运算可以参考我的有关移位的博客)

&:按位与

|:按位或

^:按位异或

~:按位取反

<<:按位左移

>>:按位右移

5.(复合)赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=

赋值运算符:=

单个等号(=)在c语言中是赋值运算;

算术运算符复合赋值:+=、-=、*=、/=、%=

位运算符复合赋值:&=、|=、^=、<<=、>>=

二、特殊运算符

1.sizeof运算符:sizeof(表达式)

2.三目/条件运算符:(表达式1)?表达式2:表达式3

3.逗号运算符:表达式1,表达式2,……

4.下标运算符:[]

5.取地址运算符:&

6.地址引用运算符:*

7.结构体/共用体成员访问运算符: .

8.结构体/共用体指针成员访问运算符:->

9.小括号运算符:(表达式)、函数名(形参表)

10.强制类型转换运算符:(数据类型)表达式

三、总结

运算符虽然不少,而且还有优先级之分,但是多练习熟悉就好了,实践出真知!

附录:运算符优先级表

优先级

运算符 名称或含义 使用形式 结合方向 说明

1

[]

数组下标 数组名[长度]

从左往右

() 小括号 (表达式)或
函数名(形参表)
  . 取成员 结构体名.成员
  -> 指针 结构体指针->成员

2

  - 负号运算符 -表达式

从右往左

单目运算符
() 强制类型转换 (数据类型)表达式
  ++ 自增运算符 ++变量或变量++ 单目运算符
  -- 自减运算符 --变量或变量-- 单目运算符
  * 取内容 *指针变量 单目运算符
  & 取地址 &变量名 单目运算符
  ! 逻辑非 !表达式 单目运算符
  ~ 按位取反 ~整型表达式 单目运算符
  sizeof 求长度 sizeof(表达式) 单目运算符

3

 / 表达式 / 表达式

从左往右

双目运算符
 * 表达式 * 表达式 双目运算符
  % 取余 表达式 / 表达式 双目运算符

4

 + 表达式+表达式

从左往右

双目运算符
  - 表达式-表达式 双目运算符

5

<< 左移 变量<<表达式

从左往右

双目运算符
>> 右移 变量<<表达式 双目运算符

6

> 大于 表达式>表达式

从左往右

双目运算符
>= 大于或等于 表达式>=表达式 双目运算符
< 小于 表达式<表达式 双目运算符
<= 小于或等于 表达式<=表达式 双目运算符

7

 == 等于 表达式==表达式

从左往右

双目运算符
 != 不等于 表达式!=表达式 双目运算符
       8   & 按位与 表达式&表达式   从左往右 双目运算符
       9   ^ 按位异或 表达式^表达式   从左往右  双目运算符
      10   | 按位或 表达式|表达式   从左往右 双目运算符
      11 && 逻辑与 表达式&&表达式   从左往右 双目运算符
      12 || 逻辑或 表达式||表达式   从左往右 双目运算符

13

?: 条件运算符 表达式1? 表达式2: 表达式3

从右往左

三目运算符

14

= 赋值运算符 变量=表达式

从右往左

双目运算符

/= 除后再赋值 变量/=表达式
*= 乘后再赋值 变量*=表达式
%= 取余后再赋值 变量%=表达式
+= 加后再赋值 变量+=表达式
-= 减后再赋值 变量-=表达式
<<= 左移再赋值 变量<<=表达式
>>= 右移再赋值 变量>>=表达式
&= 按位与再赋值 变量&=表达式
^= 按位异或再赋值 变量^=表达式
|= 按位或再赋值 变量|=表达式
      15 , 逗号表达式 表达式,表达式,…   从左往右

【C语言】运算符大全(附运算符优先级表)相关推荐

  1. C语言的本质(7)——C语言运算符大全

    C语言的本质(7)--C语言运算符大全 C语言的结合方向 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左).例如算术运算符的结合性是自左至右,即先左后右.如有表达式 x- ...

  2. 【C语言运算符大全】快速学会C语言运算符

    目    录(本篇字数:2120) 介绍 运算符分类 算术运算符 逻辑运算符 关系运算符 位运算符 赋值运算符 经典问题:a = 5,b = 8,如何交换两个变量的值? 介绍 说到运算符,从小我们就学 ...

  3. c语言优先级大全,C语言运算符及其优先级汇总表口诀

    C语言运算符及其优先级汇总表口诀 C语言运算符及其优先级汇总表口诀 圆下箭头一顿号 非凡增减富强针地长 三乘除,四加减,五移位 千万别把鱼忘记,它在盛饭的厨子里 小灯大灯灯灯不等 爸喂鱼,舅疑惑,裸鸡 ...

  4. c语言左值中有运算符,C语言左值,运算符的优先级以及结合性探讨

    刚刚开始看一本书.<C陷阱与缺陷>,相信学习C语言的大家都对这本书有耳闻.今天看到了里面的贪心法则.也即在读到一个字符后,尽可能多的读入更多的字符,直到读入的字符组成的字符串已经不可能再组 ...

  5. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  6. c++运算符优先级_C语言入门教程-(6)运算符

    1.运算符概述 运算符是一种编译器执行特定的数学或逻辑操作的符号.C语言提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 其他运算符 2.算术运算符 算术 ...

  7. C语言中的位运算符主要有哪些?逻辑右移与算术右移的区别?

    逻辑右移与算术右移的区别? 逻辑右移就是不考虑符号位,右移一位,左边补零即可. 算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,:否则,就补0. 所以算术右移也可以进行有符号位的除法,右 ...

  8. Java/C语言/C++/Python/PHP运算符优先级

    Java 运算符优先级 运算符 优先级 postfix expr++ expr-- unary ++expr --expr +expr -expr ~ ! multiplicative * / % a ...

  9. c语言运算符类型转换,C语言中强制类型转换运算符的独特作用

    C语言中强制类型转换运算符的独特作用 在C语言中有一个强制类型转换运算符,它为C语言中的数据类型转换带来 (本文共2页) 阅读全文>> 在进行C++类的设计时,我们常常需要为类对象设计运算 ...

最新文章

  1. eeglab教程系列(17)-DIPFIT对独立成分进行等价偶极子定位
  2. 命令行选项“/source-charset”与预编译头不一致
  3. 基类数组存放派生类_永远不要将派生类数组赋值给基类类型指针
  4. python爬虫爬取豆瓣电影
  5. 解除天翼young和沃派客户端数量限制的方法
  6. shell(30) : 批量修改文件后缀
  7. jQuery MiniUI, 企业级Web开发
  8. android 6.0 usb网卡,Android安卓6.0使用技巧:让手机化身网卡和声卡
  9. c语言作业ppt模板,c语言演讲模板ppt
  10. [Azure - VNet] Azure网络带宽的性能测试
  11. 路由器关闭DHCP之后连接不到路由器设置界面?
  12. 介绍中国传统节日的网页html,中国传统节日大全表 中国16个传统节日介绍
  13. 债券价格和到期收益率的关系_什么是到期收益率 到期收益率与债券价格的关系...
  14. oracle数据透明加密,使用ORACLE 透明数据加密 TDE
  15. 038--想和权证恋个爱
  16. 全新版大学英语综合教程第一册学习笔记(原文及全文翻译)——7 - Kids On The Track(生死时刻)
  17. 大学生英语跨文化交际阅读课程 Unit6 Text A
  18. linux 运行安卓游戏吗,桌面应用|在 Linux 上安装安卓 8.1 Oreo 来运行应用程序和游戏...
  19. ST-Link资料02_ST-Link固件介绍,及固件命名规则
  20. 26进制(A到Z表示1到26,例27:AA,2019:BYQ)

热门文章

  1. 测风塔选址与代表性问题
  2. 《软件安装与使用教程》— 安装Proteus8仿真软件最新详细教程
  3. python比java好学吗-java为什么比python快?
  4. php面向对象--php面向对象ppt
  5. php面向对象之多态
  6. Java堆空间(Heap Space)
  7. kubectl cp命令
  8. 关于pip下载很慢很慢
  9. 1128_AURIX_TC275的基本参数了解
  10. nginx的http_rewrite模块的rewrite指令