第五章 运算符、表达式和语句
本章将介绍以下内容:
1、关键字——while、typedef;
2、运算符——=、-、*、/、%、++、--;
3、C语言的各种运算符,包括用于普通数学运算的运算符;
4、运算符优先级以及语句、表达式的含义;
5、while循环;
6、复合语句、自动类型转换和强制类型转换;
7、如何编写带有参数的函数。
5.1 while循环:while循环范围内,花括号以及被花括号括起来的部分被称为块(block)

5.2基本运算符
5.2.1赋值运算符:=
=号左侧的项必须是一个变量名,右值指的是能赋给可修改左值的量,且本身不是左值。
5.2.2 加法运算符 + 和减法运算符 -
printf("%d", 4 + 20 );输出的是 24 ,而不是4 + 20。+ 和 - 都被称为二元运算符。
5.2.4符号运算符: - 和 +
a = -12; b = -c; d = +12; 以这种方式使用的负号被称为一元运算符。
5.2.5 乘法运算符:*
5.2.6 除法运算符:/
(1)、整数相除得出来的结果是整数,小数部分会被丢弃,这一过程称为截断。避免使用混合类型;(2)、如果浮点数除以整数,编译器会把两个运对象转换成相同的类型。(3)、对于负数的整数除法,例:-5/2 = -2,该方法直接舍弃小数部分,采用趋零截断。

5.2.7运算符优先级
乘法和除法的优先级高于加法和减法,有括号的先算括号里的
5.3 其他运算符
5.3.1 sizeof 运算符和size_t 类型

解析:size_t 是一种无符号整数类型,专门用于表示对象的大小(如内存块的大小、数组的长度等),只能存储非负整数。
sizeof是一个运算符,用于获取操作数的大小(以字节为单位),sizeof(int) 用于获取int 类型在当前平台下所占的字节数,然后将这个值赋给 intsize 变量。
sizeof 的转换说明符:%zd。
5.3.2 求模运算符:%
求模运算符用于整数运算。下列程序是利用求模判断一个整数是奇偶

==是比较等号左边和右边是否相等,相等则返回1(真),反之则返回0(假)。相等关系运算符。
5.3.3递增运算符 ++
a_post = a++ ;//后缀,使用a之后,递增a; pre_b = ++b ;//前缀,使用b的值之前,递增b。
下面的程序区分了前缀和后缀自增的情况,具体看VS 5.4.2

5.3.4 递减运算符:--
同理递增运算符。关系运算符:> 运算符表示“大于”, < 运算符表示“小于”,它们都是关系运算符。
5.3.5优先级
递增运算符和递减运算符都有很高的结合优先级,只有圆括号的优先级比它们高。
注意,不要一次用太多递增运算符,自己会绕糊涂滴!y=(4+x++)+(6+x++),避免使用这样的语句。
花括号括起来的一条或多条语句叫复合语句,复合语句也称为块(block)
5.5 类型转换
类型级别从高到低:double > float > long > int
涉及两种类型的运算,两个值会被分别转换成两种类型的更高级别。
从较小类型转换成较大级别,叫升级;把一种类型转换成更低级别的类型,叫降级。
5.5.1强制类型转换运算符
强制类型转换运算符将其右侧的值转换成圆括号中指定的类型,如(float)9 把整数9转换成浮点数 9.0
5.6带参数的函数(可参考2.6多个函数)

解析:1、对于 void pound (int n),如果函数不接受任何参数,函数头的圆括号中应该写上关键字 void 。2、声明参数就创建了被称为形式参数(简称形参)的变量,该例中,形式参数是 int 类型变量 n ,像 pound(10) 这样的函数调用会把 10 赋 n。调用 pound(times) 就是把 times 的值(5)赋给n。我们称函数调用传递的值为实际参数(简称实参)。time 是 pound() 的实参,n 是 pound() 的形参。

浙公网安备 33010602011771号