《C++ Primer》第5章 5.2节习题答案
《C++ Primer》第5章 语句
5.2节 语句作用域
练习5.4:说明下列例子的含义,如果存在问题,试着修改它。
(a)while(string::iterator iter != s.end()) { /* ... */}
(b)while(bool status = find(word)) { /* ... */ }
if(!status) { /* ... */ }
【出题思路】
我们可以在if、switch、while和for语句的控制结构内定义变量。定义在控制结构当中的变量只在相应语句的内部可见,一旦语句结束,变量也就超出其作用范围了。如果其他代码也需要访问控制变量,则变量必须定义在语句的外部。
【解答】
(a)是非法的,它的原意是希望在while语句的控制结构当中定义一个string::iterator类型的变量iter,然后判断iter是否到达了s的末尾,只要还没有到达末尾就执行循环体的内容。但是该式把变量的定义和关系判断混合在了一起,如果要使用iter与其他值比较,必须首先为iter赋初值。修改后的程序应该是:
string::iterator iter=s.begin();
while(iter != s.end())
{
++iter;
/* ... */
}
(b)是非法的,变量status定义在while循环控制结构的内部,其作用域仅限于while循环。if语句已经位于while循环的作用域之外,status在if语句内是一个未命名的无效变量。要想在if语句中继续使用status,需要把它定义在while循环之前。修改后的程序应该是:
bool status;
while(status = find(word)) { /* ... */}
if(!status) { /* ... */ }
《C++ Primer》第5章 5.2节习题答案相关推荐
- 《C++ Primer》第14章 14.3节习题答案
<C++ Primer>第14章 操作重载与类型转换 14.3节 算术和关系运算符 习题答案 练习14.13:你认为Sales_data类还应该支持哪些其他算术运算符(参见表4.1,第 ...
- 《C++ Primer》第9章 9.3节习题答案
<C++ Primer>第9章 顺序容器 9.3节顺序容器操作习题答案 练习9.18:编写程序,从标准输入读取string序列,存入一个deque中.编写一个循环,用迭代器打印deque中 ...
- 《C++ Primer》第15章 15.4节习题答案
<C++ Primer>第15章 面向对象程序设计 15.4节 抽象基类 习题答案 练习15.15:定义你自己的Disc_quote和Bulk_quote. [出题思路]本题练习实现不同折 ...
- 《C++ Primer》第15章 15.2节习题答案
<C++ Primer>第15章 面向对象程序设计 本章介绍了面向对象程序设计的两个重要概念:继承和动态绑定,包括: □●继承.基类.派生类的基本概念. □●虚函数和虚基类. □●继承中的 ...
- 《C++ Primer》第13章 13.5节习题答案
<C++ Primer>第13章 拷贝控制 13.5节 动态内存管理类 习题答案 练习13.39:编写你自己版本的StrVec,包括自己版本的reserve.capacity(参见9.4节 ...
- 《C++ Primer》第12章 12.3节习题答案
<C++ Primer>第12章 动态内存 12.3节使用标准库:文本查询程序 习题答案 练习12.27:TextQuery和QueryResult类只使用了我们已经介绍过的语言和标准库特 ...
- C++ Primer - 5th Edition - 书中源代码 - 课后习题答案
C++ Primer - 5th Edition - 书中源代码 - 课后习题答案 C++ Primer - 5th Edition - 书中源代码 - 课后习题答案 1. C++ Primer, 5 ...
- matlab第三章题目,第3章 MATLAB矩阵处理习题答案
<第3章 MATLAB矩阵处理习题答案>由会员分享,可在线阅读,更多相关<第3章 MATLAB矩阵处理习题答案(3页珍藏版)>请在人人文库网上搜索. 1.第3章 MATLAB矩 ...
- 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案
浙大版<C语言程序设计>第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解, ...
最新文章
- python数据写入CSV
- form表单中,file选择图片后预览
- 无需写代码!可一键生成前后端代码的开源工具
- C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
- 全网都在用的超全【面试刷题小程序】,最新版激活教程
- 飞鸽传书为什么传书?
- 20180321选择排序-简单选择排序
- ubuntu15.04源失效问题修复
- JS实现,页面显示数据加载,显示加载效果,加载完成显示数据
- 3DMax VRay 渲染笔记
- matlab离散系统的频率响应,离散系统的频率响应分析
- 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 谈谈我对零售云在云原生总结与思考
- 警校计算机专业考研,一名警校毕业生的跨专业考研路
- 高德 获取城市地铁站点数据
- ​富士莱医药通过注册:年营收近5亿 钱祥云曾非法买卖外汇
- loj6539. 奇妙数论题
- alsa 音频编程简单的例子 (总结)
- 怎样设计访谈提纲_用户访谈提纲设计
- sakai 源码安装注意事项