1、基本概念
运算符是告诉编译程序执行特定算术或逻辑操作的符号。
2、分类
按照功能划分:
算术运算符、关系运算符与逻辑运算符、按位运算符。
运算符根据参与运算的操作数的个数分为:
单目运算:只有一个操作数如 : i++ ! sizeof
双目运算:有两个操作数如 : a+b
三目预算:C语言中唯一的一个,也称为问号表达式 a>b ? 1 : 0
3、算术运算符包括:+ - * / % 特点: 什么样数据类型相互运算结果还是什么数据类型
[objc] view plain copy4、类型转换问题
类型转换分为:隐式数据类型转换 和 显示数据类型转换
1)自动转换(隐式转换):
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:
(1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
(2)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转 成long型后再进行运算。
(3)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成 double型,再作运算。
(4)char型和short型参与运算时,必须先转换成int型。
(5)在赋值运算中,两边数据类型不同时,右边的类型将转换为左边的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。
2)强制类型转换(显示转换):强制类型转换是通过类型转换运算来实现的。
其一般形式为: (类型说明符) (表达式) 在使用强制转换时应注意以下问题:
(1)类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y 则成了把x转换成int型之后再与y相加了。
(2)无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
[objc] view plain copy在程序中经常需要比较两个量的大小关系, 以决定程序下一步的工作。 比较两个量的运算符称为关系运算符。
关系运算符都是双目运算符,包括>(大于) <(小于) >=(大于等于) <=(小于等于) ==(等于) !=(不等于)
6、逻辑运算符
C语言中提供了三种逻辑运算符:&&(与运算) ||(或运算) !(非运算)
逻辑表达式:
表达式 逻辑运算符 表达式 如:(a&&b)&&c
表达式的值:&&只要有一个是假的,表达式的值则为假的
|| 只要有一个是真的,表达式的值则为真的
!真变假,假变真
7、三目运算符
表达式1?表达式2:表达式3
如果表达式1为真,则以表达式2作为条件表达式的值,否则以表达式3作为条件表达式的值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |