2.9:解释下列定义的含义。对非法的定义,请说明错在何处并将其改正。
(a) std::cin>>int input_value; (b) int i={ 3.14 };
(c) double salary=wage=9999.99; (d) int i=3.14;
a)从标准输入中读取变量input_value。是非法的定义,应该先声明int input_value,再定义std::cin>>input_value;
b)初始化int类型变量的值,C++11的标准。是非法的定义(会警告),3.14是double类型的,初始化int类型的会出现数据丢失,从而报错。改成:double i={3.14}。
c)先初始化wage变量,然后用wage变量去初始化salary。是非法的定义。变量的定义是变量类型 变量名1,变量名2。改成:double wage=9999.99,salary=wage;
d)初始化int类型变量的值。不是非法定义(会警告),编译器不会报错,但是数据会丢失。改成:double i=3.14;
2.10:下列变量的初值分别是什么?
std::string global_str; //初值为空字符串
int global_int; //初值为0;
int main()
{
int local_int; //初值未定义
std::string local_str; //初值为空字符串
}