c语言的操作符总结
2018-03-31 13:02
489 查看
1.算术操作:
+ - * / %/1)两个数均为整数则进行整数除法2)只要有一个数为浮点数就进行浮点数除法%1)%操作符的两个操作数必须为整数2.关系运算符:== 等于;!= 不等于;>= 大于等于;<= 小于等于;>
f441
大于 ;< 小于;*注意;等于为==,=为赋值运算
为了我们更清楚这一点,可以写为以下形式:if(3==i)
3.逻辑操作符:&& 逻辑与;|| 逻辑或;! 非;*注:逻辑与左边为0,右边不计算
逻辑或左边为1,右边不计算4.位操作符:
& 按位与
| 按位或
~ 按位非
位指的是二进制位
注意:操作数必须是整数
5..赋值操作符
=可以重新赋一个值复合赋值符:+= -= *= /= %= >>= <<= &= |= 这些运算符都可以写成复合的效果
6.单目操作符
!逻辑反操作非0为真,0为假- 负值+ 正值& 取地址sizeof 操作数的类型长度(单位:字节)1)sizeof可以求变量或类型所占空间的大小2)变量可不放在()中,但类型一定要放在()中;3)在sizeof(数组名)中 数组名表示整个数组 ~ 对一个数的二进制按位取反0变为1,1变为0-- 前置、后置--前置-- :先--后使用
例:int a = 1 ;int b = 0;b = --a;得到结果a=0;b=0;后置-- :先使用后--
例:int a = 1 ;int b = 0;b = a--;得到结果a=0;b=1;++ 前置、后置++与--原理相同 * 间接访问操作符(解引用操作符)
例:int num = 10;int *p = &num;*p = 20;//*p就相当于num(类型) 强制类型转换例:int a = 1 ;float b = 0;b = (float)a; //这里就是将整型的a强制转换为浮点型
7.条件操作符exp1?exp2:exp3例:if(a>3)b = 1;elseb = -1;用条件表达式来写是:b =(a>3)? 1 : -1
8.移位操作符
1、<< 左移操作符
左边抛弃,右边补0;
2、>> 右移操作符
(1)逻辑右移
右边丢弃,左边补0;
(2)算数右移
左边用原该值的符号位填充,右边丢弃
eg: int num=-1;
num >> 1;
num=-1;
-1的补码:11111111111111111111111111111111
逻辑右移:01111111111111111111111111111111 //-1
算数右移:11111111111111111111111111111111 //-19.操作符的属性:复杂表达式的求值有三个影响的因素。1. 操作符的优先级2. 操作符的结合性3. 是否控制求值顺序。两个相邻的操作符先执⾏哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。