首页 > 代码库 > 【读书笔记】C++Primer---第二章

【读书笔记】C++Primer---第二章

1.C++基本数据类型:字符型、整型、浮点型等;

2.算术类型如下表,下表只是表示C++要求的最小储存空间,但是一般编译器使用的都比所要求的储存空间大,以前类型所能表示的最大值也因机器的不同而有不同的最大值。

类型含义最小存储空间
bool布尔型--
char字符型8位
wchar_t宽字符型16位
short短整型16位
int整型16位
long长整型32位
float单精度浮点型6位有效数字
double双精度浮点型10位有效数字
long double扩展精度浮点型10位有效数字

 

 

 

 

 

 

 

 

 

3.字符类型有两种,char和wchar_t,char一般是单个机器字节,wchar_t可以储存中文和日文等,不是单个字节;

4.默认的类型都是有符号的,如果需要表示无符号类型,必须指定该类型为unsigned,比如unsigned long,unsigned int,如果单是unsigned则表示unsigned int;

5.在C++中,将一个超过取值范围的值赋给一个类型,会对该类型最大值进行取模后赋值,如将-1赋给unsigned char,那么结果将是255,但是不能保证所有的编译器都是这个规则;

6.字面值整型默认就是int或者是long类型的,根据其大小默认为特定的一种类型,如符合int,该值就属于int类型,大于int的最大值,则属于long类型。通过增加后缀,能够强制将字面值整型常亮转换为long、unsigned或者unsigned long,如128u代表unsigned类型、1L代表long类型、1024UL代表unsigned long;

7.默认的小数字面值都是double类型的,在数值后面加上F或者f表示单精度,同样加上L或者l代表扩展精度类型;

8.如L‘a‘则表示为wchar_t类型的字面值;

9.为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空格符,L"hello world"代表以一个宽字符结尾的字面值;

10.C++的标识符不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母,有些标识符也不能以下划线开头;

11.初始化是指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值替代,所以初始化不是赋值!;

12.extern仅仅只是声明,不是定义,变量必须且只能定义一次,而且在使用变量之前必须定义或者声明变量;

13.在const变量想被其他文件访问时,需要在声明的时候加上extern,非const变量则默认都是extern;

14.一个引用变量在定义的时候必须初始化;

15.typedef通常被用于三中目的:a.为了隐藏特定类型的实现,强调使用类型的目的;b.简化复杂的类型定义,使其更易理解;c.允许一种类型用于多个目的,同时使得每次使用该类型的目的明确;

16.枚举的格式:enum open_modes {input, output, append};

17.类的定义包括一个接口和实现;

18.如果使用class关键字来定义类,那么定义在第一个访问标号钱的任何成员都隐式指定为private,如果用struct,则为public,这就是struct和class之间的区别;

19.因为变量和函数在使用前都需要提前声明,所以C++支持分别编译,将函数和变量的声明放到头文件,而类的实现则放到cpp文件;

 

【读书笔记】C++Primer---第二章