第五章 运算符、表达式和语句¶
注解
- 本章介绍如下内容:
- 关键字 while、typedef
- 运算符 =、-、*、/、%、++、--、类型名
- C语言的各种运算符,包括用于普通数学运算的运算符
- 运算符优先级以及语句、表达式含义
- while循环
- 复合语句、自动类型转换和强制类型转换
- 如何编写带参数的函数
5.1 循环简介¶
程序清单 5.1 shoesl.c 程序
// shoesl.c #include <stdio.h> #define ADJUST 7.31 int main(void){ const double SCALE = 0.33 double shoe, foot; shoe = 9.0; printf("%10.1f %12.5f inches \n",shoe,foot); return 0; }
该程序使用了#define指令创建符号常量和用const限定符创建在程序运行中不可更改的变量。
循环程序:
while(shoe<18.5){
shoe++;
}
5.2基本运算符¶
C用运算符表示算术运算。
5.2.1 赋值运算符¶
hmw = 2002;
5.2.2 加法运算符: +¶
4+20 ;
5.2.3 减法运算符 -¶
a = 50-5;
5.2.4 符号运算符 +和-¶
a = -12;
b = +12;
5.2.5 乘法运算符¶
a = 2*5;
5.2.6 除法运算符¶
a = 5.00/2.00
5.2.7 运算符优先级¶
跟数学里的一样没必要讲
5.2.8 优先级和求值顺序¶
略
5.3 其他运算符¶
5.3.1 sizeof 运算符和 size_t 类型¶
sizeof运算符以字节为单位返回运算对象的大小或类型。如果运算符对象是类型则必须用个括号括起来。
C语言规定,sizeof返回size_t类型的值。这是一个无符号整数类型。C有一个typedef机制,允许你程序员为现有类型创建别名:
typedef double real;
这样real就是double的别名
real deal;
5.3.2 求模运算符¶
略 %符号 和数学里的一样 取余数
5.3.3 递增运算符++¶
i++;
5.3.4 递减运算符¶
i--;
5.3.5 优先级¶
递增运算符和递减运算符都是很高的结合优先级。只有括号比它们高。
5.3.6 不要自作聪明¶
如果一次用太多递增运算符,自己都会糊涂。
5.4 表达式¶
略
5.6 带参数的函数¶
//filename: pound.c #include <stdio.h> void pound(int n); int main(void){ int time = 5; char ch = '!'; //ASCII码为33; float f = 6.0f; pound(time); pound(ch); //pound((int)ch) pound(f); //pound((int)f) return 0; } void pound(int n){ while(n-- > 0) printf("#"); printf("\n"); }
5.7 示例程序¶
略
5.8 关键概念¶
C通过运算符提供多种操作。每个运算符的特性包括运算对象的数量、优先级和结合律。当两个运算符共享一个运算对象时,优先级和结合律决定了;额先进性哪像运算。每个C表达式都有一个值。如果不了解运算符和优先级,写出的表达式可能不合法或者表达式的值与预期不符。
5.9 本章小结¶
C语言有许多运算符,本章讨论了赋值运算符和算术运算符。
表达式由运算符和运算对象组成。每个表达式都有一个值,包括赋值表达式和比较表达式。运算符优先级规则决定了表达式中各项的求值顺序。
5.10 复习题¶
略