首页> 单片机教学(C言语教程)  
第八课 语 句(2)-复合语句
  曾经在BBS上有伴侣问过我{}是什么意义?什么传染感动?在C中是有不少的括号,如{},[],()等,确实会让一些初入门的伴侣疑惑。在VB等一些言语中统一个()号会有不合的传染感动,它能够用于组合若干条语句构成功能块,能够用做数组的下标等,而在C中括号的分工较为较着,{}号是用于将若干条语句组合在一路构成一种功能块,这类由若干条语句组合而成的语句就叫复合语句。复合语句之间用{}分隔,而它内部的各条语句仍是需要以分号";"结束。复合语句是答应嵌套的,也是便是在{}中的{}也是复合语句。复合语句在法式运转时,{}中的各行单语句是顺次挨次施行的。以C言语中能够将复合语句视为一条单语句,也便是说在语法上等同于一条单语句。对于一个函数而言,函数体便是一个复合语句,也许大师会因而晓得复合语句中不单能够用可施行语句构成,又一次能够用变量定义语句构成。要留意的是在复合语句中所定义的变量,称为局部变量,所谓局部变量便是指它的无效范畴只在复合语句中,而函数也算是复合语句,所以函数内定义的变量无效范畴也只在函数内部。关于局部变量和全局变量的具体用法会在说到函数时具体申明。下面用一段简单的例子简单申明复合语句和局部变量的使用。

#include <at89x51.h>
#include <stdio.h>

void main(void)
{
unsigned int a,b,c,d; //这个定义会在整个main函数中?

SCON = 0x50; //串口编制1,答应领受
TMOD = 0x20; //按时器1按时编制2
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //启动按时器

a = 5;
b = 6;
c = 7;
d = 8; //这会在整个函数无效
printf("0: %d,%d,%d,%d\n",a,b,c,d);
{ //复合语句1
unsigned int a,e; //只在复合语句1中无效
a = 10,e = 100;
printf("1: %d,%d,%d,%d,%d\n",a,b,c,d,e);
{ //复合语句2
unsigned int b,f; //只在复合语句2中无效
b = 11,f = 200;
printf("2: %d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f);
}//复合语句2结束
printf("1: %d,%d,%d,%d,%d\n",a,b,c,d,e);
}//复合语句1结束
printf("0: %d,%d,%d,%d\n",a,b,c,d);

while(1);
}

运转成果:
0:5,6,7,8
1: 10,6,7,8,100
2: 10,11,7,8,100,200
1: 10,6,7,8,100
0:5,6,7,8

连系以上的申明想想为何成果会是多么。


示例法式下载

联系地址:浙江省杭州市西湖科技园西园七路3号4层 邮政编码:310011 Email:hificat@163.com xu169@sina.com
德律:0571-87615070 传真:0571-87615070 手机:13185018567 QQ:420951892 MSN:hificat@hotmail.com
杭州电子&算计机工作室 版权所有 COPYRIGHT2003——2007 HangZhou Electron&Computer Studio. All rights reserved