C语言程序设计教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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语句。