C++Primer中文版(第四版)题解整理(16)
时间:2025-04-20
时间:2025-04-20
C++Primer题解
【解答】
global_str和local_str的初始值均为空字符串,global_int的初始值为0,local_int没有初始值。
习题2.18
解释下列例子中name的意义:
externstd::stringname;
std::stringname("exercise3.5a");
externstd::stringname("exercise3.5a");
【解答】
第一条语句是一个声明,说明std::string变量name在程序的其他地方定义。
第二条语句是一个定义,定义了std::string变量name,并将name初始化为"exercise3.5a"。
第三条语句也是一个定义,定义了std::string变量name,并将name初始化为"exercise3.5a",但这个语句只能出现在函数外部(即,name是一个全局变量)。
习题2.19
下列程序中j的值是多少?
inti=42;
intmain()
{
inti=100;
intj=i;
//...
}
【解答】
j的值是100。j的赋值所使用到的i应该是main函数中定义的局部变量i,因为局部变量的定义会屏蔽全局变量的定义。习题2.20
下列程序段将会输出什么?
inti=100,sum=0;
for(inti=0;i!=10;++i)
sum+=i;
std::cout<<i<<""<<sum<<std::endl;
【解答】
输出为:
10045
for语句内部。输出的i值是for语句之前所定义的变量i的值。
习题2.21