4.1.3 复合语句
复合语句是用一对花括号“{}”将若干语句组合在一起而构成的语句。复合语句在程序中是很重要的一种结构,常用于将多个语句组合起来以完成特定的功能。复合语句的程序示例如下。
include<stdio.h>//头文件
void main()//主函数
{
int a=11,b=22;//声明变量
printf(“a=%d,b=%d\n”,a,b);//输出结果
{//复合语句,用于执行平反运算
int a2,b2;
a2=a*a;//表达式语句
b2=b*b;
printf(“a^2=%d,b^2=%d\n”,a2,b2);//输出结果
}
{//复合语句,局部变量演示
int a,b;//声明局部变量
a=23;b=-17;//变量赋值
a=a+b;//表达式语句
b=10-b;
printf(“a=%d,b=%d\n”,a,b);//输出局部变量结果
}
printf(“a=%d,b=%d\n”,a,b);//输出结果
}
该程序可以在KeilµVision3编译环境中执行,其运行的结果如下所示。
a=11,b=22
a^2=121,b^2=484
a=6,b=27
a=11,b=22
本例中,由于程序总是由main函数开始执行,在主函数中定义并初始化变量a和b,其作用范围为整个main函数。第一个复合语句用来计算变量a和b的平反值并输出。第二个复合语句演示了局部变量的使用,其中定义了局部变量a和b,由于其作用域为该复合语句内部,因此不会和前面定义的变量相冲突。从本程序可以看出处于不同位置的变量之间的变量作用域的区别。
在程序中使用复合语句时,要注意以下几点。
❑复合语句内部简单语句的结尾仍要有分号,但是复合语句的构成符“{”和“}”之后均不能有分号。
❑C51语言中,复合语句在语法上等同于一条语句。在程序运行时,复合语句“{}”中的各行单语句是依次顺序执行的。
❑在C51中复合语句可以嵌套使用。复合语句中的语句可以是简单语句,也可以是复合语句,即在“{}”中还可以再有“{}”。这样形成的层次结构原则上可以无限地扩大。
❑复合语句中不但可以由可执行语句组成,还可以用变量定义等语句组成。在复合语句中所定义的变量,称为“局部变量”,其变量作用域只在复合语句内部。
❑函数体本身也是一个复合语句,函数内定义的变量的变量作用域只在函数内部。
❑典型的复合语句还有由if、else、for等构成的语句。
技巧每一个复合语句使用一个TAB缩进,复合语句的大括号放在新的一行,单独成一行,便于检查源程序时“{}”相匹配。