您的位置:首页 > 编程语言 > C语言/C++

C++ Primer 读书笔记——变量和基本类型

2017-08-17 15:55 225 查看

C++ Primer 读书笔记1

关键概念

使用文件重定向——P19

C++是一种静态类型语言——P42

void* 指针——P50

临时量对象指编译器需要一个空间来暂存表达式的结果时临时创建的一个未命名的对象。

顶层底层const——P57/58

类型别名(typedef)——P60

decltype类型指示符:选择并返回操作数的数据类型。——P62

decltype(f()) sum=x;

头文件保护符——P68

易误导知识点

变量初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,用一个新值代替。——P43.

如果内置类型的变量未被显示初始化,他的值由定义的位置决定。定义于任何函数体之外的变量被初始化为0.一种例外:定义在函数体内部的内置类型变量不被初始化。一个未被初始化的内置类型变量的值是未定义的,如果试图拷贝或以其他形式访问此类型值将引发错误——P40。

如果想声明一个变量而不是定义它,在变量前添加关键字extern 不要显示地初始化否则无效。——P41

变量只能被定义一次但是可以被多次声明。——P41

引用本身不是一个对象,所以不能定义引用的引用。——P46

默认状态下,const对象仅在文件内有效。如果在const变量定义前添加extern关键字,该常量就可以被其他文件访问。——P54

”对const的引用“就是“常量引用”,对const的引用可能应用一个非const对象,但是不能通过常量引用改变其值可以通过其他途径改变他的值。——55

常量表达式是在编译过程就能得到计算结果的表达式。constexpr可以声明一个常量表达式。——P59

函数体内定义的变量一般来说并非存放在固定地址中,因此constexpr指针不能指向这样的变量。——P59

const int *p=nullptr; //P是一个指向整形常量指针

constexpr int *q=nullptr; //q是一个指向整数常量指针

——P60

typedef double wages;

using wages=double;

这两个等价(第二个是C++11增加的新标准)——P60

auto定义的变量必须有初始值——P61

auto会忽略顶层const保留底层const——P62

decltype((variable))注意是双层括号的结果永远是一个引用,而decltype(variable)结果只有当variable本身是一个引用时才是引用。——P63
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: