5.9 总结

C有多种运算符,例如在本章中讨论的赋值和算术运算符。总的来说,一个运算符作用于一个或多个操作数来产生一个值。带一个操作数的运算符(例如负号和sizeof)称为一元运算符。要求两个操作数的运算符(例如加法和乘法运算符)称为二元运算符。

表达式是运算符和操作数的组合。在C里,每一个表达式都有一个值,其中包括赋值表达式和比较表达式。运算符优先级的规则帮助决定当对表达式进行求值时,如何组合表达式里的各项。当两个运算符共享一个操作数时,具有较高优先级的运算符先被运算。如果运算符有相同的优先级,结合性(从左到右或者从右到左)决定了哪个运算符先被应用。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

语句是对计算机的完整指示,在C中通过一个分号来标识。到目前,您已经使用了声明语句、赋值语句、函数调用语句和控制语句。包含在一对花括号里的语句构成了一个复合语句或者代码块。一个特殊的控制语句是while循环,只要判断条件保持为真,该循环就重复执行循环体里的语句。

在C里,许多类型转换会自动发生。当char和short类型出现在表达式里或者作为函数的参数时,它们都将被提升为int类型。当float类型作为一个函数参数时被提升为double类型。在K&R C(而不是ANSI C)下,当float用于表达式里时也被提升为double类型。当把一种类型的值赋给另一种类型的变量时,该值被转换成和那个变量相同的类型。当较大类型的值被转换成较小类型的值(例如,long变成short,或者double变成float)时,它们可能丢失数据。根据本章概括的规则,在混合类型的算术运算的情况下,较小的类型被转换成较大的类型。

当您定义了一个接受一个参数的函数时,您在函数定义里声明了一个变量,或称形式参数。然后在函数调用中传入的值会赋给这个变量,现在就可以在函数里使用该值了。