### 运算符号 ###
运算符就是指定该运算的处理方式。
C语言中的运算符
※ 算术运算符
※ 赋值运算符
※ 关系运算符
※ 逻辑运算符
※ 三目运算符
#### 算术运算符
C语言基本算术运算符如下表:
![](http://img.mukewang.com/54ac8dfb000126ad04510145.jpg)
**除法运算中注意:**
如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。
**取余运算中注意:**
**该运算只适合用两个整数进行取余运算**,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。
**注:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。**
> 运算符号优先级此题中()等级最高,%、/、*等级是一样的排第二,+、-等级一样排第三。
#### 自增与自减运算符
自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式:
![](http://img.mukewang.com/548043a400012aa904320091.jpg)
注意:**无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。**
请分析如下代码输出结果:
![](http://img.mukewang.com/5492b925000133c704060208.jpg)
运行结果:
![](http://img.mukewang.com/54804463000121a000990171.jpg)
#### 赋值运算符 ####
简单的赋值运算符“=”,如:
![](http://img.mukewang.com/5492bd4700016e9103370083.jpg)
**C语言中赋值运算符分为简单赋值运算符和复合赋值运算符,**之前我们已经接触过简单赋值运算符“=”号了,下面讲一下复合赋值运算符:
**复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成**,例如+=、-=、*=、/=、%=。
![](http://img.mukewang.com/5492bd7600016d2603370038.jpg)
分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a
**注意:复合运算符中运算符和等号之间是不存在空格的。**
#### 关系运算符 ####
下面是C语言中的关系运算符:
![](http://img.mukewang.com/5481551100017fbe04250141.jpg)
关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如:
![](http://img.mukewang.com/586f2fb30001f38f04570079.jpg)
其结果为:
![](http://img.mukewang.com/548157e30001b92e00300061.jpg)
**注意:>=,<=,==,!=这种符号之间不能存在空格。**
#### 逻辑运算符
C语言中的逻辑运算符:
![](http://img.mukewang.com/54816483000195a203180087.jpg)
那么前面的那个算式写成计算机可以看的懂的算式就是:x>7 && x<100;
**逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示**。其求值规则如下:
1) 与运算(&&)
参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;
2) 或运算(||)
参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;
3) 非运算(!)
参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。
#### 三目运算符 ####
C语言中的三目运算符:“?:”,其格式为:
`表达式1 ? 表达式2 : 表达式3; `
**先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。**
![](http://img.mukewang.com/5492be2d0001946603740216.jpg)
输出结果
![](http://img.mukewang.com/548179720001eb0901360026.jpg)
#### 运算符大比拼之优先级比较 ####
**优先级就是在运算中运算的先后顺序。**
![](http://img.mukewang.com/54817fa90001654403370200.jpg)
**优先级别为1的优先级最高,优先级别为10的优先级别最低。**
大家没必要去死记运算符的优先级顺序,记住最高优先级别的,在开发中就会无敌啦~来看一看下面的例子:
![](http://img.mukewang.com/5492be850001fb8502870057.jpg)
解析:C语言中运算符中最高等级的为(),因此执行过程为:
1. 先计算a>3和a+3的结果,计算后算式为1*a-14%3;
2. 再计算1*a和14%3的结果,计算后算式为11-2;
3. 最后算出结果为9
### C语言运算符
![](https://img.kancloud.cn/97/89/9789ad70fdc03d3e38d3e608c58d2cae_933x972.png)
- 前言
- JNI基础知识
- C语言知识点总结
- ①基本语法
- ②数据类型
- 枚举类型
- 自定义类型(类型定义)
- ③格式化输入输出
- printf函数
- scanf函数
- 编程规范
- ④变量和常量
- 局部变量和外部变量
- ⑤类型转换
- ⑥运算符
- ⑦结构语句
- 1、分支结构(选择语句)
- 2、循环结构
- 退出循环
- break语句
- continue语句
- goto语句
- ⑧函数
- 函数的定义和调用
- 参数
- 函数的返回值
- 递归函数
- 零起点学通C语言摘要
- 内部函数和外部函数
- 变量存储类别
- ⑨数组
- 指针
- 结构体
- 联合体(共用体)
- 预处理器
- 预处理器的工作原理
- 预处理指令
- 宏定义
- 简单的宏
- 带参数的宏
- 预定义宏
- 文件包含
- 条件编译
- 内存中的数据
- C语言读文件和写文件
- JNI知识点总结
- 前情回顾
- JNI规范
- jni开发
- jni开发中常见的错误
- JNI实战演练
- C++(CPP)在Android开发中的应用
- 掘金网友总结的音视频开发知识
- 音视频学习一、C 语言入门
- 1.程序结构
- 2. 基本语法
- 3. 数据类型
- 4. 变量
- 5. 常量
- 6. 存储类型关键字
- 7. 运算符
- 8. 判断
- 9. 循环
- 10. 函数
- 11. 作用域规则
- 12. 数组
- 13. 枚举
- 14. 指针
- 15. 函数指针与回调函数
- 16. 字符串
- 17. 结构体
- 18. 共用体
- 19. typedef
- 20. 输入 & 输出
- 21.文件读写
- 22. 预处理器
- 23.头文件
- 24. 强制类型转换
- 25. 错误处理
- 26. 递归
- 27. 可变参数
- 28. 内存管理
- 29. 命令行参数
- 总结
- 音视频学习二 、C++ 语言入门
- 1. 基本语法
- 2. C++ 关键字
- 3. 数据类型
- 4. 变量类型
- 5. 变量作用域
- 6. 常量
- 7. 修饰符类型
- 8. 存储类
- 9. 运算符
- 10. 循环
- 11. 判断
- 12. 函数
- 13. 数学运算
- 14. 数组
- 15. 字符串
- 16. 指针
- 17. 引用
- 18. 日期 & 时间
- 19. 输入输出
- 20. 数据结构
- 21. 类 & 对象
- 22. 继承
- 23. 重载运算符和重载函数
- 24. 多态
- 25. 数据封装
- 26. 接口(抽象类)
- 27. 文件和流
- 28. 异常处理
- 29. 动态内存
- 30. 命名空间
- 31. 预处理器
- 32. 多线程
- 总结
- 音视频学习 (三) JNI 从入门到掌握
- 音视频学习 (四) 交叉编译动态库、静态库的入门学习
- 音视频学习 (五) Shell 脚本入门
- 音视频学习 (六) 一键编译 32/64 位 FFmpeg 4.2.2
- 音视频学习 (七) 掌握音频基础知识并使用 AudioTrack、OpenSL ES 渲染 PCM 数据
- 音视频学习 (八) 掌握视频基础知识并使用 OpenGL ES 2.0 渲染 YUV 数据
- 音视频学习 (九) 从 0 ~ 1 开发一款 Android 端播放器(支持多协议网络拉流/本地文件)
- 音视频学习 (十) 基于 Nginx 搭建(rtmp、http)直播服务器
- 音视频学习 (十一) Android 端实现 rtmp 推流
- 音视频学习 (十二) 基于 FFmpeg + OpenSLES 实现音频万能播放器
- 音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)