码迷,mamicode.com
首页 > 编程语言 > 详细

《accelerated c++》第一章练习

时间:2016-07-07 12:48:44      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

(测试环境为windows8下vs2013)

 

1-1  下面的定义正确吗?为什么?

技术分享

1-2 下面的定义正确吗?如果不对,为什么?

技术分享

答:由vs2013的编译结果可知,1-1是正确的,1-2是有错误的,错误的提示如图:

技术分享

“+”的用法:

首先+只能连接两个string类型或者是一个string类型和一个字符串直接量,其次+具有左结合性。

所以第一个是可以的,因为hello是个string类型,跟“world”结合后还是string类型,再跟“!”结合

而第二个是错误的,因为“hello”与“world”都是字符串直接量。


 

1-3下面的程序正确吗?如果正确,它做了什么?如果不对,为什么?

技术分享

我们看下运行结果:

技术分享

运行结果没有问题,所以程序是正确的,因为“{}”是生存空间,第一个s在第一个花括号结束之后会被释放


 

1-4下面的程序对吗?如果我们把倒数第三行的}}改为};}的话,会出现什么情况呢?

技术分享

改写后:

技术分享

运行结果一样都没错,还是花括号的生存空间问题,还有分号的作用,只不过添加了一条空语句


 

1-5下面的程序正确吗?如果正确,它做了什么?如果不对的话,说出理由,并且把它改写正确。

技术分享

编译之后如图:

技术分享

没错因为x是在第三层括号里面的,所以在第二层空间里是没有x的,要想输出x,就得让它们处于同一生存空间

像是这样:

技术分享

由于s在第二层括号就定义了,所以在第三层如果没有别的s的新定义,那么s就用第二层的定义,这是改写比较少一点的,也可以让它们全部处于一个生存空间:

技术分享


 

1-6当下面的程序要求你输入时,你输入了两个名字(比如,Samuel Beckett)。它会如何处理呢?在运行程序前预测一下结果,然后试试看。

技术分享

就是一个变量name被赋值两次分别打印,结果如图:

技术分享

 

《accelerated c++》第一章练习

标签:

原文地址:http://www.cnblogs.com/monster-prince/p/5649439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!