1、算术运算
算术运算包括加、减、乘、求余和一些其他操作。其中加、减、乘、除、求余属于双目算数运算符,双目运算符需要两个操作数。其优先级和名称如下表:
运算符 | + | - | * | / | % |
---|---|---|---|---|---|
名称 | 加 | 减 | 乘 | 除 | 模(求余) |
优先级 | 低 | 高 |
算术运算符使用时需要注意:
(1)两个整数做除法运算,那么结果一定是整数。计算方法是舍去小数点后的数据,仅取整数部分。
例如:表达式11/4的值为2,1/3的值为0。
若要使结果是小数,可以将其中一个表示为小数形式,例如:1.0/2结果就是小数,保留1位小数那就是0.5。
(2)求余运算符的结果是整型数据相除的余数,它不能用于实型数据的运算。
例如:表达式3%4的值为3,9%4的值为1,100%4的值为0。
(3)+和-还可以作为单目运算符,用于表示数值常量的符号,如+7和-7。
(4)双目运算符两侧操作数的类型要相同,否则,系统会自动进行类型转换,使它们具有相同的数据类型,然后再进行运算。转换的原则一般是转换成占存储空间较大的数据类型。
例如:10.0/4时,系统会先自动将其转换为10.0/4.0,再算出其值为2.5。
(5)算术表达式中乘号不能省略,和数学不同,例如5(fahr-32)/9
是错误的,会报错: [Error] called object is not a function or function pointer
,需要改成5*(fahr-32)/9
;
2、赋值运算
C语言中赋值是一种运算,赋值运算符是"=",其作用为把一个表达式的值赋给一个变量,如fahr=100。这里的"=“和数学里的”=“不一样,数学里面的”=“表示的是一种关系,C语言的”="是一种运算。赋值运算符的优先级要低于算术运算符。
用赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其格式如下:
变量=表达式;
例:fahr=100和celsius=5*(fahr-32)/9都是赋值表达式。
注意:赋值表达式的左边必须是一个变量。
赋值表达式的基本运算过程:
(1)计算赋值运算符右侧表达式的值;
(2)将赋值运算符右侧表达式的值赋给赋值运算符左侧的变量。
例:当fahr=100时,求解赋值表达式celsius=5*(fahr-32/9),首先是计算5*(fahr-32/9)可以得到37,再将37赋值给celsius。
赋值运算符两侧的数据类型不同时,那么系统会将右侧表达式的运算结果转换成与赋值运算符左侧变量相同的类型,再将值赋给左侧变量。