标签:
(测试环境为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被赋值两次分别打印,结果如图:
标签:
原文地址:http://www.cnblogs.com/monster-prince/p/5649439.html