算术运算符:(+ - * / % ++ --)
关系运算符:(< <= == > >= !=)
逻辑运算符:((! && ||)
位运算符 :(<< >> ~ | ^ &)
赋值运算符:(= 及其扩展)
条件运算符:(?:)
逗号运算符:(,)
指针运算符:(* &)
求字节数 :(sizeof)
强制类型转换:(类型)
分量运算符:(. ->)
下标运算符:([])
其它 :(( ) -)
运算符
基本算术运算符: + - * / %
结合方向:从左向右
优先级: * / % -----> + -
说明:
两整数相除,结果为整数;运算数中有一个为实数,结果为实数
%要求两侧均为整型数据
例 5%2 =1
-5%2 =-1
1%10 =1
5%1 =0
5.5%2(×)
自增、自减运算符++ --
作用:使变量值加1或减1
说明:
++ -- 不能用于常量和表达式,如5++,(a+b)++
++ --结合方向: 自右向左
优先级:- - ++ -- ------>* / % ----->+ -
种类:
前置 ++i, --i (先执行i+1或i-1,再使用i值)
后置 i++,i-- (先使用i值,再执行i+1或i-1)
例 j=3; k=++j; //k=4,j=4
j=3; k=j++; //k=3,j=4
j=3; printf(“%d”,++j); //4
j=3; printf(“%d”,j++); //3
a=3;b=5;c=(++a)b; //c=20,a=4
a=3;b=5;c=(a++)b; //c=15,a=4

赋值运算符和表达式
简单赋值运算符
符号: =
格式: 变量标识符=表达式
作用:将一个数据(常量或表达式)赋给一个变量

复合赋值运算符
种类:+= -= *= /= %= 《= 》= &= ^= |=
含义: exp1 op= exp2 ↔ exp1 = exp1 op exp2

说明(1)
结合方向:自右向左



例: a=b=c=5//表达式值为5,a,b,c值为5
a=(b=5)// b=5;a=5
a=5+(c=6)//表达式值11,c=6,a=11
a=(b=4)+(c=6)//表达式值10,a=10,b=4,c=6
a=(b=10)/(c=2)//表达式值5,a=5,b=10,c=2
说明(2)
结合方向:自右向左
左侧必须是变量,不能是常量或表达式
赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型
赋值表达式的值与变量值相等,且可嵌套
例: a=12;
a+=a-=aa //a=-264 等价于a=a+(a=a-(aa))
例: int a=2;
a%=4-1;
a+=a=a-=a=3; //a=0 等价于a=a+(a=a(a=a-(a=a3)))
网友评论