復合語句(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; //因為前面定義過的,只在其自己的{}中起作用,所以不會影響到后面其{}之外的定義了。"這一行注釋,看看有錯誤提示,理解復合語句范圍限制,特別是對變量的范圍的限制