运算符
来源:互联网 发布:python 二叉树遍历 编辑:程序博客网 时间:2024/05/29 05:10
C语言中的操作符:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。
1.算术操作符:+ - * / %
1) 除了 % 操作符之外,其他的几个操作符均可以作用于整数和浮点数。2) 对于 / 操作符,如果两个操作数都为整数,执行整数除法;而只要有浮点数执行的就是浮点数除法。
3)% 操作符的两个操作数必须为整数,返回的是整除之后的余数。
2.移位操作符: << 左移操作符 和 >> 右移操作符
逻辑移位(不管是左移位还是右移位) 都是空缺处补0算术移位要保证符号位的不改变(逻辑左移位补0, 逻辑右移位看符号位)
3.位操作符:& 按位与 | 按位或 ^ 按位异或 (操作数都必须是整数,是针对二进制数的操作)
4.赋值操作符:可以重新为变量赋值(赋值操作符是可以连续使用的)。
5.复合赋值符:+= = *= /= %= >>= <<= &= |= ^=
6.单目操作符:! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度(以字节为单位) ~ 对一个数的二进制按位取反 -- 前置、后置--
++ 前置、后置++ * 间接访问操作符(解引用操作符) (类型) 强制类型转换
1)++和--运算符
(1)前置++和--:先自增后使用,表达式的值是自增之后的值。
先自减后使用,表达式的值是自减之后的值。
(2)后置++和--:先使用再自加。
先使用再自减。
7.关系操作符: > >= < <= != 不相等 == 相等
注:== 相等 = 赋值 ,二者易混淆,需注意。
8.逻辑操作符:&& 逻辑与 || 逻辑或
注:逻辑与、逻辑或是判断真假的,按位与、按位或是对二进制数进行操作的。
9.条件操作符(三目操作符):exp1 ? exp2 : exp3
先计算表达式1 的值,如果表达式 1 为真,整个表达式的值就是表达式 2 的值,如果为假,整个表达式的值就是表达式 3 的值。
10.逗号表达式:exp1, exp2, exp3, …expN
从左向右依次执行,整个表达式的结果是最后一个表达式的结果。
11.下标引用、函数调用和结构成员
1) [ ] 操作数:一个数组名 + 一个索引值
2.)( ) 函数调用操作符
接受一个或多个操作数:第一个操作数是函数名,剩余的操作数是传递给函数的参数。
3) 访问一个结构的成员:. 结构体 . 成员名
-> 结构体指针 -> 成员名
12.表达式求值
表达式求值的顺序一部分是由操作符的优先级和结合性决定。
有些表达式的操作数在求值的过程中需要转换为其他类型。
1)隐式类型转换:C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换
称为整型提升。
2)算术转换:如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的类型转换为另一个操作数的类型,否则操作就无法进行。
寻常算术转换:long double
doublefloat
unsigned long int
long int
unsigned int
int
如果某个操作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。(算术转换要合理)
3)复杂表达式的求值三个影响的因素:(1)操作符的优先级 (2)操作符的结合性 (3)是否控制求值顺序。
两个相邻的操作符执行顺序取决于他们的优先级,如果两者的优先级相同,取决于他们的结合性。
- 运算和运算符
- 运算符
- ??运算符
- 运算符
- << 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- ?? 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- Unity Editor 基础篇(六):Property Drawers
- DISKPART 硬盘只读
- 摄像头模拟【2016.3.26】
- 线程调度—优先级调度
- win7 VS2013下搭建opengl es 2.0开发环境
- 运算符
- scala与java混编maven插件
- 翻硬币
- 烂泥:mysql帮助命令使用说明
- 垂直同步(VSYNC)实现原理
- 递归递推练习 -b 王小二切饼/HDU折线分割平面
- Java集合之LinkedList总结
- 拖拽布局
- java——设置sa账号密码,jdbc连接sqlserver2005数据库