第二章变量和基本类型
2016-03-02 23:16
344 查看
2.1
执行浮点数用double 而不用float.两者开销差不多。
当算术表达式既有无符号数又有int型,将Int改为unsigned
unsigned u=10;
int i=-42;
cout<<i+u; //负值转化为正值,而不为-32
字符串字面值比实际长度多1.
定义在一个函数体(包括main)内部的内置类型将不被初始化(string 不是内置类型)
函数之外被初始化为0
2.3
引用必须绑定对象(除了虚函数,const的引用),不能定义引用的引用或 int &a=10(10不是对象)
const引用或指向常量的指针初始化允许用非常量表达式,但普通引用或普通指针不能指向常量
(const)
int i=1;
const int &r1=i //正确
const int *p=&i;//正确
const int &r1=1;//正确
i=2//i可以变但r1不可以变,但可以通过i改变r1
cout<<r1<<i //输出22
double a=1.1;
const int &i=a;//正确
等效于
const int temp=a;
const int &i=temp;
初始化所有指针,如果不清楚具体值则初始化为nullptr
2.4
底层const:如指向常量的指针
顶层const:如指针常量
auto会忽略掉顶层const ,保留底层const(不包括引用auto &)
decltype 中如果表达式的内容是解引用*操作,则delctype将得到引用类型。
执行浮点数用double 而不用float.两者开销差不多。
当算术表达式既有无符号数又有int型,将Int改为unsigned
unsigned u=10;
int i=-42;
cout<<i+u; //负值转化为正值,而不为-32
字符串字面值比实际长度多1.
定义在一个函数体(包括main)内部的内置类型将不被初始化(string 不是内置类型)
函数之外被初始化为0
2.3
引用必须绑定对象(除了虚函数,const的引用),不能定义引用的引用或 int &a=10(10不是对象)
const引用或指向常量的指针初始化允许用非常量表达式,但普通引用或普通指针不能指向常量
(const)
int i=1;
const int &r1=i //正确
const int *p=&i;//正确
const int &r1=1;//正确
i=2//i可以变但r1不可以变,但可以通过i改变r1
cout<<r1<<i //输出22
double a=1.1;
const int &i=a;//正确
等效于
const int temp=a;
const int &i=temp;
初始化所有指针,如果不清楚具体值则初始化为nullptr
2.4
底层const:如指向常量的指针
顶层const:如指针常量
auto会忽略掉顶层const ,保留底层const(不包括引用auto &)
decltype 中如果表达式的内容是解引用*操作,则delctype将得到引用类型。
相关文章推荐
- C++Primer笔记之关联容器的使用详解
- 如何更好的利用《C++ Primer》学习C++?
- c++primer plus 2.7编程练习作业
- C++primer 第十章 单词转换程序 运行不了解决办法
- 头文件中包含const与非const对象
- 几个标准库类型的简单使用
- C++Primer _vector _习题3.13
- C++Primer _vector _习题3.14
- Sales_item.h (C++ Primer 第五版)
- forward_list未定义+=符号,而改用advance()函数改变迭代器
- C++ primer 笔记
- C++Primer学习笔记
- 重读c++primer (第五版) -- 引子
- (福利)”C++Primer笔记“和”Java经典入门笔记“
- C++复习学习提纲
- [C++ Primer]第一章 快速入门
- C++primer 阅读笔记-模板与泛型编程(效率与灵活性+)
- C++primer阅读笔记-模板与泛型编程(重载与模板)
- C++primer阅读笔记-模板与泛型编程(模板实参推断)
- C++primer阅读笔记-重载运算与类型转换(可调用对象与function)