3.1 C语言程序的语句
在第1章中曾经介绍过,C语言程序由函数构成,一个C语言函数通常由函数的首部和函数体两部分组成,而函数体一般包括说明部分(由若干条说明语句组成)和执行部分(由若干条执行语句组成)。C语言的任何语句都必须以“;”作为语句的结束标志,“;”是C语句的必要组成部分。
3.1.1 说明语句
C 语言规定,函数中使用的所有变量(或数组)必须在使用前进行定义,否则会在编译时出错。如果程序中不使用变量(或数组),当然也可以没有变量定义语句。说明语句包括变量(或数组)定义语句和函数声明语句两种,最常用的是变量(或数组)定义语句。通常是通过变量定义语句来确定变量的类型与初值的。例如:
char ch1,ch2; /* 定义ch1,ch2为字符型 */ int x,y,z=1; /* 定义x,y,z为整型,z初值为l */ float a,b,c; /* 定义a,b,c为单精度浮点型 */ double d1,d2; /* 定义d1,d2为双精度型 */
3.1.2 执行语句
程序的功能是由若干条执行语句实现的。执行语句可分为5类:表达式语句、复合语句、空语句、函数调用语句和控制语句。
1.表达式语句
表达式语句由任意表达式加上语句结束符分号“;”组成,其一般形式为:
表达式;
其中,最常用的是由赋值表达式加上分号构成的赋值语句,其一般形式为:
变量=表达式;
在C语言中,表达式语句的表达能力很强,使用也很方便。例如:
a=b+c; /* 赋值语句 */ a+b; /* 加法运算语句。但计算结果不能保留,无实际意义 */ i++; /* 自增1语句,i的值增加1 */
注意:在C语言中有赋值表达式的概念。赋值表达式可以包括在其他表达式之中,但是赋值语句一般不能出现在表达式中。
2.复合语句
在C语言中,复合语句也可称为“语句块”,将若干条语句用一对花括号“{}”括起来便构成了复合语句。花括号内可以包含任何C语言语句,其一般形式如下:
{ 语句1 语句2 …… 语句n }
例如:
{ i=5; j*=i; }
说明:
① 一条复合语句在语法上作为一条语句处理,在一对花括号中的语句数量不限。在 C语言程序中,凡是可以出现单语句的地方,都可以使用复合语句。
② 在书写复合语句时,要注意花括号必须配对。复合语句中右花括号的后面不加分号。
③ 在复合语句中,不仅可以有执行语句,还可以有说明语句,说明语句应该出现在可执行语句的前面。例如:
{ int a=5; b=a*a; }
3.空语句
只有一个分号“;”组成的语句,被称为空语句。例如:
main( ) { ; }
空语句的语义是什么也不执行。在程序设计中有时需要加上一个空语句来表示存在一条语句,但是随意加上分号会造成逻辑上的错误,所以应该慎用。
4.函数调用语句
由函数调用表达式加上分号即构成了函数调用语句。例如:
printf("What are you doing?");
5.控制语句
顾名思义,控制语句的作用是控制程序的流程,以实现程序的分支结构和循环结构。C语言只有9种控制语句,可分成以下3类:
① 条件语句,用于控制分支结构的语句,例如,if语句、switch语句;
② 循环语句,用于控制循环结构的语句,例如,while语句、do while语句、for语句;
③ 转向语句,转向语句主要有goto语句、break语句、continue语句、return语句。