卧龙小说网> > > 2.2.4节练习

2.2.4节练习

2.2.4节练习

2.2.4节练习

练习2.13:下面程序中j的值是多少?

int i = 42;

int main()

{

int i = 100;

int j = i;

}

出题思路:本题旨在考查全局作用域与局部作用域的关系。

解答:j的值是100。C++允许内层作用域重新定义外层作用域中已有的名字,在本题中,int = 42;位于外层作用域,但是变量i在内层作用域被重新定义了,因此真正赋予j的值是定义在内层作用域中的i的值,即100。

练习2.14:下面的程序合法吗?如果合法,它将输出什么?

int i = 100 sum = 0;

for (int i = 0; i !=10; ++i)

sum += i;

std::cout << i << " " << sum << std::endl;

出题思路:本题旨在考查嵌套作用域中变量的定义和使用。

解答:该程序是合法的,输出结果是100 45。

该程序存在嵌套的作用域,其中for循环之外是外层作用域,for循环内部是内层作用域。首先在外层作用域中定义了i和sum,但是在for循环内部i被重新定义了,因此for循环实际上是从i=0循环到i=9,内层作用域中没有重新定义sum,因此sum的初始值是0并在此基础上依次累加。最后一句输出语句位于外层作用域中,此时在for循环内部重新定义的i已经失效,因此实际输出的仍然是外层作用域的i,值为100;而sum经由循环累加,值变为了45。


普通的冒险故事提示您:看后求收藏(卧龙小说网http://www.wolongxs.com),接着再看更方便。

好书推荐:《我的剧本世界在自主运行》《我是舰娘》《我的师妹是妖女》《交错世界之学院都市》《认清现实后,她们开始追夫火葬场》《好徒儿你就饶了为师伐》

目录