目录
3.1 C语句的作用和分类
(1)控制语句
(2)函数调用语句
(3)表达式语句
(4)空语句
(5)复合语句
一个函数包含声明部分和执行部分,执行部分是由语句组成的,语句的作用是向计算机系统发出操作指令,要求执行相应的操作。一个C语句经过编译后产生若干条机器指令。声明部分不是语句,它不产生机器指令,只是对有关数据的声明。C程序结构可以用下图表示。
即一个C程序可以由若干个源程序文件(编译时以文件模块为单位)组成,一个源文件可以由若干个函数和预处理指令以及全局变量声明部分组成。一个函数由数据声明部分和执行语句组成。
C语句分为以下5类:
控制语句用于完成一定的控制功能。C语言只有9种控制语句,它们的形式是:
① if()...else... (条件语句)
②for()... (循环语句)
③while()... (循环语句)
④do...while() (循环语句)
⑤continue (结束本次循环语句)
⑥break (中止执行switch或循环语句)
⑦switch (多分支选择语句)
⑧return (从函数返回语句)
⑨goto (转向语句,在结构化程序中基本不用goto语句)
上面9种语句表示形式中的()表示括号中是一个“判别条件”“...”表示内的语句。例如上面“if()···else··.”的具体语句可以写成
if (x>y) z=x; else z=y;
其中,x>y是一个“判别条件”,“z=x;”和“z=y;”是C语句,这两个语句是内嵌在if··else语句中的。这个if··else 语句的作用是:先判别条件“x>y”是否成立,如果 x>y成立就执行内嵌语句“z=x;”,否则就执行内嵌语句“z=y;”。
函数调用语句由一个函数调用加一个分号构成,例如:
printf("This is a C statement,");
其中printf("ThisisaCstatement.")是一个函数调用,加一个分号成为一个语句。
表达式语句由一个表达式加一个分号构成最典型的是由赋值表达式构成一个赋值语句。例如:
a=3
是一个赋值表达式,而
a=3;
是一个赋值语句。可以看到,一个表达式的最后加一个分号就成了一个语句。一个语句必须在最后有一个分号,分号是语句中不可缺少的组成部分,而不是两个语句间的分隔符号例如:
i=i+1 (是表达式,不是语句)
i=i+1; 任何表达式都可以加上分号而成为语句
例如:
i++;
是一个语句,作用是使i值加 1。又例如:
x+y;
也是一个语句,作用是完成x十y 的操作,它是合法的,但是并不把 x十y的和赋给另一变量,所以它并无实际意义。表达式能构成语句是C语言的一个重要特色。其实“函数调用语句”也属于表达式语句,因为函数调用(如 sin(x))也属于表达式的一种。只是为了便于理解和使用,才把“函数调用语句”和“表达式语句”分开来说明。
下面是一个空语句:
;
此语句只有一个分号,它什么也不做。那么它有什么用呢?可以用来作为流程的转向点(流程从程序其他地方转到此语句处),也可用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。
可以用分把一些语句和声明括起来成为复合语句(又称语句块)。例如下面是一个复合语句:
{
float pi=3.14159,r=2.5,area; //定义变量
area=pi*r*r;
printf("area=%f,area);
}
可以在复合语句中包含声明部分(如上面的第2行),C99允许将声明部分放在复合语句中的任何位置,但习惯上把它放在语句块开头位置。复合语句常用在 if 语句或循环中此时程序需要连续执行一组语句。