练习2.9、2.10

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;  //初值为空字符串

}

原文地址:https://www.cnblogs.com/Dark-King/p/9342214.html