51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > C51教程 > 详细内容
第八课 语 句(2)-复合语句
发布时间:2009/6/16  阅读次数:3175  字体大小: 【】 【】【

作者:  磁动力     来源:网络

  在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,%dn",a,b,c,d);
{ //复合语句1
unsigned int a,e; //只在复合语句1中有效
a = 10,e = 100;
printf("1: %d,%d,%d,%d,%dn",a,b,c,d,e);
{ //复合语句2
unsigned int b,f; //只在复合语句2中有效
b = 11,f = 200;
printf("2: %d,%d,%d,%d,%d,%dn",a,b,c,d,e,f);
}//复合语句2结束
printf("1: %d,%d,%d,%d,%dn",a,b,c,d,e);
}//复合语句1结束
printf("0: %d,%d,%d,%dn",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

结合以上的说明想想为何结果会是这样。

  

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[5]
  • 评论人:[匿名] 时间: [2012/1/5 20:45:53] IP:[187.63.209.*]
  • KASQtn , [url=http://cntvonxqfola.com/]cntvonxqfola[/url], [link=http://rqiwynzhydyx.com/]rqiwynzhydyx[/link], http://vnhnmonkvmck.com/
  • 评论人:[匿名] 时间: [2012/1/5 3:14:09] IP:[119.224.110.14*]
  • WThtQ2 <a href="http://yoavcljurjdp.com/">yoavcljurjdp</a>
  • 评论人:[匿名] 时间: [2012/1/3 23:29:13] IP:[188.40.126.24*]
  • 2KKHkU , [url=http://jttayxmbpsca.com/]jttayxmbpsca[/url], [link=http://iglslsnodsbe.com/]iglslsnodsbe[/link], http://xbsucyfvatif.com/
  • 评论人:[匿名] 时间: [2012/1/3 0:44:22] IP:[182.16.8.10*]
  • Ud2cM2 <a href="http://avtsbwiyaizt.com/">avtsbwiyaizt</a>
  • 评论人:[匿名] 时间: [2012/1/2 20:47:15] IP:[109.230.216.22*]
  • Thats way the bestest asnwer so far!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号