6.1.1 C语句简介
C语言程序的组成比较复杂,不但有变量和常量等简单元素,还有函数、数组和语句等较大的个体。但是从整体上看,C语言程序的结构比较清晰。具体组成结构如图6-1所示。
图6-1 C语言程序的结构
C程序的执行部分是由语句组成的,程序功能也是由执行语句实现的。C语言的语句可分为如下5类。
1.表达式语句
表达式语句由表达式加上分号“;”组成,其一般格式如下。
表达式;
经常说的执行表达式语句就是计算表达式的值,例如下面是一个赋值表达式。
x=3
而下面都是语句。
x=y+z; //赋值语句 y+z; //加法运算语句,但不保留计算结果,无实际意义 i++; //自增1语句,i值增1
从上面的代码可以看出,语句的最显著特点是有分号“;”。
2.函数调用语句
函数调用语句由函数名、实际参数和分号“;”组成,其一般格式如下所示。
函数名(实际参数表);
经常说的执行函数语句,就是调用函数体并把实际参数赋值给函数定义中的形参,然后执行被调函数体中的语句来求取函数值。例如下面的函数语句。
printf("C Program");
上述函数语句可调用库函数,输出字符串。
注意:函数语句也属于表达式语句,因为函数调用也属于表达式的一种。为了便于理解和使用,才把函数调用语句和表达式语句分开来讲。
3.控制语句
C语言中的控制语句用于控制程序流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。在C语言中有9种控制语句,具体可以分为以下3类。
❑ 条件判断语句:包含if语句、switch语句。
❑ 循环执行语句:包含do while语句、while语句、for语句。
❑ 转向语句:包含break语句、goto语句、continue语句、return语句。
上述语句都将在后面的内容中进行详细介绍。
4.复合语句
复合语句就是把多个语句用括号“{}”括起来组成的语句,复合语句通常又称为分程序。在程序中应该把复合语句看成是单条语句,而不是多条语句。例如下面的语句就是一条复合语句。
x=m+n; a=b+c; printf("%d%d"x, a) ;
在复合语句内各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。
5.空语句
只有分号“;”的语句称为空语句。空语句是什么也不执行的语句,在程序中空语句可用来作为空循环体。例如下面的第2行语句就是空语句。
while(getchar()! ='\n') ;
上述语句的功能是,只要键盘输入的字符不是回车符就重新输入。
在C语言中,允许在一行上同时写几个语句,也允许将一个语句拆开后写在几行上,书写格式可以不固定。
注意:在C语言中,编译器在读取源代码时,只会查找语句中的字符和末尾的分号“; ”,而会忽略里面的空白(包括空格、制表符和空行)。所以在编写C程序代码时,程序可以写成如下格式。
a=b+c;
也可以写成如下格式。
a=b+ c;
甚至可以写成如下格式。
a= b+ c;
空白可以忽略并不代表C程序中的所有空白都应忽略。字符串中的空白和制表符就不能忽略,应认为它们是字符串的组成部分。字符串常量会用引号将一系列的字符括起来,在编译时会逐字进行解释,而不会忽略其中的空格。例如下面的两段字符串是不相同的。
"My name is Guan Xijing" "My name is Guan Xijing"
执行后,后者的间隔会大于前者的,具体间隔的大小和代码中的间隔大小一致。