本博客知识记录自己学习中的笔记或者记录,如果有错误欢迎大家纠正。
列表初始化,在c++11中 使用花括号来初始化变量得到全应用,
int units_sold =0;
int units_sold = {0};
int units_sold(0);
int units_sold{0};
初始化每一个内置类型的变量
练习2.9 解释下列定义,对于非法的定义,请说明错在何处并将其改正。
a。 std::cin>>int input_value; //错误 输出变量声明
b. int i ={3.14}; // 错误,列表初始化不能存在数值丢失
c. double salsry =wage =9999.99;//错误 wage 没有声明类型
d.int i = 3.14; // 正确 虽然数据丢失,但能正常编译运行。
练习 2.10下列变量的初值分别是多少?
std::string global_str; //为空
int global_int; //在函数外调用 为0
int main(){
int local_int; //在函数类调用 不被初始化 编译不通过
std::string local_str; //空
}
c++ 语言将声明和定义区分开来,声明(declaration)使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明,而定义(definition)负责创建与名字关联的实体。定义申请存储空间,并初始化,声明可以多次,定义只能一个
练习2.11 指出下面的语句是声明还是定义
a. extern int ix = 1024;//定义
b int iy; //声明
c. extern int iz; //声明
练习2.12 请指出下面的名字中那些是非法的?
a. int double = 3.14; //错误 double为关键字 不能做变量
b. int _; //正确变量以字母或下划线开始
c.int catch =22; //错误 catch为关键字
d.int 1_or_2 =1;//作为 变量以字母或下划线开头
e double Double =3.14; //正确 关键字区分大小写Double 不为关键字
练习2.13 下面程序中j的值是多少?
int i = 42;
int main(){
int i=100;
int j = i ;
}
j的值为100;内部相同变量覆盖外部变量
练习2.14 下面程序合法吗,如果合法,它将输出什么?
int i =100,sum =0;
for (int i=0;i!=10;i++){
sum +=i;
}
std::cout<