C语言中有很多的运算符与表达式,如算术运算、赋值运算、逗号运算、自增、自减、关系运算、逻辑运算、位运算、条件运算等等。这是由于C语言具有丰富的多种类型的表达式,才得以体现出C语言所具有的的表达能力强,使用灵活、适应性好的特点。本节主要介绍算术、赋值和逗号运算符,其他的运算符将在之后的内容的陆续介绍。
算术运算符与算术表达式
1、基本的算术运算符
运算符 | 含义 | 运算对象个数 | 结合方向 | 例子 |
+ | 加法运算或取正值运算 | 双目、单目运算符 | 自左至右 | a+b,+5 |
- | 减法运算或取负值运算 | 双目、单目运算符 | 自左至右 | a-b,-5 |
* | 乘法运算 | 双目运算符 | 自左至右 | a*b |
/ | 乘法运算 | 双目运输符 | 自左至右 | a/b |
% | 模运算(求余运算) | 双目运算 | 自左至右 | 5%7 |
这里说明几点
- “+”、“-”作为单目运算符时,具有左结合性。作为单目运算符使用时其优先级高于双目运算符。
- 除法运算符“/”在使用时要注意数据类型。参与运算均为整形时,结果也为整型,舍去小数。如果有一个是实型,则结果为双精度实型。
- 求余运算“%”要求参与运算的量均为整型,其结果等于两数相除之后的余数。
算术表达式
C语言的算术表达式是由常量、变量、函数、运算符和圆括号组成的。例如:3+5、x/(y+z)等
赋值运算符和赋值表达式
赋值运算符记为“=”,由“=”链接的式子成为赋值表达式。其一般形式为:
变量=表达式
赋值表达式的功能是先计算表达式的值,再赋予左边的变量。赋值运算符具有右结合性。
另外,如果复制运输符两边的数据类型不相同,系统将自动进行类型的转换,即把等号右边的类型转换为等号左边的数据类型。具体规定如下:
- 实型赋予整型,舍去小数部分
- 整型赋予实型,数值不变,但以浮点形式存放,即增加小数部分
- 字符型赋予整型,由于字符型为一个字节,而整型为两个字节,故将字符的ASCII码值放到整型量的底八位中,高八位为0。
- 整型赋予字符型,只把底八位赋予字符量
逗号运算符和逗号表达式
在C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:
表达式1,表达式2
逗号表达式的求值过程是,分别求出两个表达式的值,并以表达式2的值作为整个逗号表达式的值。