C语言:复合语句

复合语句(compound statement)简称为语句块,它使用大括号把许多语句和声明组合到一起,形成单条语句。语句块与简单的语句不同,语句块不用分号当作结尾。
用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如:

{

x=y+z;

a=b+c;

printf(“%d%d”,x,a);

}

就是一条复合语句。

复合语句的作用:

1、作为分支和循环的块;

2、作为标识符的作用域。
C语言中可以将复合语句视为一条单语句,也就是说在语法上等同于一条单语句。——对于一个函数而言,函数体就是一个复合语句,也许大家会因此知道复合语句中不单可以用可执行语句组成,还可以用变量定义语句组成。——要注意的是在复合语句中所定义的变量,称为局部变量,所谓局部变量就是指它的有效范围只在复合语句中,而函数也算是复合语句,所以函数内定义的变量有效范围也只在函数内部

#include <stdio.h>
void pp(void)
{
    printf(" {}里是函数体的定义,这里是复合语句,执行顺序是按条执行\n ");
}
main() //main的两个{}中也算复合语句,{}中定义的变量,只能在当前的{}中起作用
{
     pp();
    //复合语句嵌套使用
    {
        unsigned int a=0,b=3;
        printf("a= %d, b= %d \n",a,b);
    }
    unsigned int a=5,b=4; //因为前面定义过的,只在其自己的{}中起作用,所以不会影响到后面其{}之外的定义了。
    printf("a= %d, b= %d \n",a,b);
}

将"unsigned int a=5,b=4; //因为前面定义过的,只在其自己的{}中起作用,所以不会影响到后面其{}之外的定义了。"这一行注释,看看有错误提示,理解复合语句范围限制,特别是对变量的范围的限制

posted @ 2021-03-12 17:22  myrj  阅读(5399)  评论(0编辑  收藏  举报