1.5 表达式
1.5.1 运算符
算术运算符
关系运算符(== <= !=)
逻辑运算符(! && ||)
位运算符(<< >> ~ | ^ &)
复制运算符(= 及扩展的复合运算符)
条件运算符(? :)
逗号运算符(,)
指针运算符(* &)
求字节运算符 sizeof
强制类型转换符 类型符
分量运算符 . ->
下表运算符 【】
其他 () :: new delete
运算符即操作符。不同的运算符要求不同数量的操作数。由操作符和操作数构成表达式。其中,操作数可以是变量,常量或表达式。
一元运算符(++) 二元运算符(+ - / *) 三元运算符( ? : )
表达式中的运算符按优先级从高到低运算,带括号的内层优先,同级运算符从左到右运算。
1.5.2 算术表达式
算术表达式由算术运算符和操作数组成,结果值是算数值。
注意运算符的多义性(*可以代表乘法,也可以代表指针类型说明符)
自增和自减
X=i++(X=i;i+1)
X=++i (i=i+1;X=i)
类型转换
1 如果运算符左右操作符类型相同,则运算结果也是相同类型
2 如果运算符左右操作数类型不同,则首先把类型较低(存储要求、示数能力较低)的数据转换成类型较高的数据,再运算。
3 赋值的类型转换。当把一个表达式的值赋给一个变量时,系统首先强制把运算值转换为变量的类型,再执行操作。
因为被赋值的对象类型已经定义,必须把类型不一致的右操作数转换后才能写入指定存储单元。
类型转换顺序 double>unsigned>int>char,short double>float
1.5.3 逻辑表达式
非0即是真,即输出1
&& 逻辑与 || 逻辑或 ! 逻辑非
1.5.4 赋值表达式
变量=表达式
a+=b 等价于a=a+b
1.5.5 条件表达式
操作一? 操作二:操作三
1.5.6 逗号表达式
表达式一,表达式二,表达式三,.......表达式N
各表达式按顺序执行;逗号表达式表达的值为最后一个表达式的值