- 23
- 0
- 约9.95千字
- 约 22页
- 2019-01-08 发布于湖北
- 举报
C语言编程中的常见问题
????C语言编程中的常见问题 本章主要描述C语言一些基本要素。当你开始编写C程序时,你可能对C语言的一些基本问题感到困惑,如C语言所使用的约定、关键字和术语等。本章将回答这方面你经常会遇到的一些问题。例如,switch语句是最常用的一种C语言构件,本章将回答与它有关的三个常见问题。本章还涉及其它几个问题,如循环、分支、运算符的优先级和程序块技术。在阅读本章时,请注意有关switch语句和运算符优先级的一些问题,这些问题常常会使C语言的初学者感到迷惑。
1.1 什么是局部程序块(local block)????局部程序块是指一对大括号({})之间的一段C语言程序。一个C函数包含一对大括号,这对大括号之间的所有内容都包含在一个局部程序块中。if语句和swich语句也可以包含一对大括号,每对大括号之间的代码也属于一个局部程序块。此外,你完全可以创建你自己的局部程序块,而不使用C函数或基本的C语句。你可以在局部程序块中说明一些变量,这种变量被称为局部变量,它们只能在局部程序块的开始部分说明,并且只在说明它的局部程序块中有效。如果局部变量与局部程序块以外的变量重名,则前者优先于后者。下面是一个使用局部程序块的例子:
#include stdio.hvoid main(void);void main(){Begin local block for function main() int test_ var = 10;printf(Test variable before the if statement %dn, test_var);if (test_var5){Begin local block for if statement int test_ var = 5;printf(Test variable within the if statement %dn,test_var);{Begin independent local block (not tied toany function or keyword) int test_var = 0;printf (Test variable within the independent local block %dn,test_var)}End independent local block printf (Test variable after the if statement %dn, test_var);}
End local block for function main ()
上例产生如下输出结果:
Test variable before the if statement 10Test variable within the if statement 5Test variable within the independent local block0Test variable after the if statement 10
注意,在这个例子中,每次test_var被定义时,它都要优先于前面所定义的test_var变量。此外还要注意,当if语句的局部程序块结束时,程序重新进入最初定义的test_var变量的作用范围,此时test_var的值为10。
请参见:1.2可以把变量保存在局部程序块中吗
1.2 可以把变量保存在局部程序块中吗用局部程序块来保存变量是不常见的,你应该尽量避免这样做,但也有极少数的例外。例如,为了调试程序,你可能要说明一个全局变量的局部实例,以便在相应的函数体内部进行测试。为了使程序的某一部分变得更易读,你也可能要使用局部程序块,例如,在接近变量被使用的地方说明一个变量有时就会使程序变得更易读。然而,编写得较好的程序通常不采用这种方式来说明变量,你应该尽量避免使用局部程序块来保存变量。
请参见:1.1 什么是局部程序块
1.3 什么时候用一条switch语句比用多条if语句更好如果你有两个以上基于同一个数字(numeric)型变量的条件表达式,那么最好使用一条switch语句。例如,与其使用下述代码:if (x ==l)printf (x is equal to one. n);else if (x ==2)printf (x is equal to two. n);else if (x = =3)printf (x is equal to three. n);elseprintf (x is not equal to one, two, or three. n);
不如使用下述代码,它更易于阅读和维护:
switch (x){case 1 p
您可能关注的文档
- ch05不确定性和消费者行为.ppt
- ch05不确定性和消费者行为.ppt
- Ch5 大数定律及中心极限定理.ppt
- CH08系统风险评估与脆弱性分析.ppt
- ch11_UML包图及对象图.ppt
- CH11入侵检测与防御技术.ppt
- Chap2Sec2 线性方程组直接解法2n.ppt
- chap5大数定律及中心极限定理.ppt
- CHAP13 主成分分析与因子分析.ppt
- chapter 51第五章第一节.ppt
- 2021年11月29日山东汇海医药化工有限公司培南类高端医药中间体项目.pdf
- 2024年04月15日昌邑森汇新材料有限公司15000吨年定温可膨胀石墨生产装置改扩建及高性能石墨基新材料重点实验室项目.pdf
- 2021年12月13日山东海科新源材料科技股份有限公司10万吨碳酸乙烯酯项目.pdf
- 2021年11月26日山东富润实生物科技有限公司年产八万吨有机磷系环保型阻燃剂及上下游配套项目.pdf
- 2021年09月06日山东土地城乡融合发展集团有限公司土壤修复研发中心项目.pdf
- 2021年08月16日山东尚能实业有限公司30000Nm3h制氢装置优化提升项目.pdf
- 2021年08月20日胜利油田鲁胜石油开发有限责任公司胜利油田鲁胜石油开发有限责任公司牛庄油田产能建设项目.pdf
- 2021年11月09日化工股份有限公司胜利油田分公司现河采油厂东营地区地面建设及零散井工程.pdf
- 2024年03月26日长园长通新材料东莞有限公司长园长通新材料东莞有限公司新增2台工业电子项目.pdf
- 2021年12月07日东营市海科瑞林化工有限公司2万吨年橡胶高性能助剂及配套项目.pdf
最近下载
- 2025年最新部编版五年级语文下册1-8单元教材分析(全册) .pdf VIP
- 山东省烟台龙口市(五四制)2024-2025学年六年级上学期期末考试历史试题.pdf VIP
- 青少年编程:NOIP CSP 初赛篇.pdf VIP
- 2024年河南豫能控股股份有限公司招聘笔试真题汇总.docx VIP
- 小学科学教育三年规划实施方案.docx VIP
- 视频会议摄像机安装指导书.docx VIP
- 波束匹配-5G网络自适应技术.doc VIP
- 2025年河南豫能控股股份有限公司招聘考试笔试试题(含答案).docx VIP
- 急性心肌梗死PBL教学指南:临床思维培养与典型案例实战解析.pptx VIP
- iso9000实战大全iso9001教材iso9000培训讲义iso9000简述.pptx VIP
原创力文档

文档评论(0)