C++ 从入门到放弃 第二章变量和基本类型 [处理类型]

C++ 从入门到放弃 第二章变量和基本类型 [处理类型]

第二章变量和基本类型 [处理类型]


类型别名:
类型别名(type alias),用于使复杂的类型名字变得容易理解,记忆,使用。传统的方法是使用"typedef"
关键字。在新标准中我们可以使用关键字"using"来定义类型别名,这种方法又叫做别名声明(alias declaraction)。


typedef double wages;  //wages是double的同义词
typedef wages base,*p; //p是double*的同义词
using SI = sales_item; //SI是sales_item的同义词



auto类型说明符:
编程时需要把表达式常量赋值给变量需要知道表达式类型,我们现在可以用"auto"这个关键字让编译器来分析表达式所属类型,
并且可以通过初始值进行类型推断。


auto item = val1 + val2;
auto i = 0,*p = &i



编译器推断出的auto可能与类型初始时并不完全一样,编译器略微做了一些调整。


int i = 0,&r = i; //引用的初始时引用对象的值
auto a = r;       //a为int型
auto e = &r;      //e是指向int类型的指针



decltype:
decltype的作用是选择并返回操作数的数据类型,此过程中编译器分析表达式类型却不实际计算表达式的值。


decltype(f()) sum = x; //sum类型为函数f()的返回类型
const int c1 = 0,&c2 = c1;
decltype(c1) x = 0;    //x的类型为 const int
decltype(c2) y = 0   //y的类型为 const int&
decltype((c1)) e;      //报错引用必须被初始化,使用双括号必返回引用



decltype的结果类型与表达式类型密切相关。

预处理器:

预处理器(perprocessor)是在编译之前执行的一段程序,我们已经知道#include,当出现#include时预处理器就会使用相应的头文件代替。
预处理变量无视C++的作用域规则,所以要保持其唯一性。


公司的小强太牛皮了,晚上已经不能正常学习了。

禽兽一只:《C++ Primer》从入门到放弃zhuanlan.zhihu.com图标

编辑于 2018-05-30