第三章 处理数据

1、内置的C++基本类型分两组:基本类型(整型和浮点数)和复合类型(包括数组,字符串,指针和结构)。

2、C++的命名规则:

    (1)、在名称中只能使用字母字符、数字和下划线(_);

    (2)、名称的第一个字符不能是数字;

    (3)、区分大写字符与小写字符;

    (4)、不能将C++关键字用作名称;

    (5)、以两个下划线或下划线和大写字母大头的名称被保留给现实(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。

    (6)、C++对于名称的长度没有限制,名称中所以的字符都是有意义的,但有些平台有长度限制。

3、C++的基本整型分别是char、short(short int 的简称)、int、long(long int 的简称)和C++新增的long long。其中char类型是专门为存储字符(如字母和数字)而设计的。

4、计算机内存的基本单元是位(bit),字节(byte)通常指的是8位的内存单元;

5、头文件climits定义了符号常量来表示类型的限制。

符号常量 表示
CHAR_BIT char的位数
CHAR_MAX char的最大值
CHAR_MIN char的最小值
SCHAR_MAX signed char的最大值
SCHAR_MIN signed char的最小值
UCHAR_MAX unsigned char的最大值
SHRT_MAX short的最大值
SHRT_MIN short的最小值
USHRT_MAX unsigned short的最大值
INT_MAX int的最大值
INT_MIN int的最小值
UINT_MAX unsigned int的最大值
UINT_MIN unsigned int的最小值
LONG_MAX long的最大值
LONG_MIN long的最小值
ULONG_MAX unsigned long的最大值
LLONG_MAX long long的最大值
LLONG_MIN long long的最小值
ULLONG_MAX unsigned long long的最大值
FLT_MANT_DIG float 类型的尾数
FLT_DIG float 类型的最少有效数字位数
FLT_MIN_10_EXP 带有全部有效数的float类型的负指数的最小值(以10为底)
FLT_MAX_10_EXP  float类型的正指数的最大值(以10为底)
FLT_MIN 保留全部精度的float类型正数最小值
FLT_MAX float类型正数最大值

6、#define编译指令是C语言遗留下来的。C++有一种更好的创建符号常量的方法使用关键字const(能够明确指定类型)。然而,有些头文件,尤其是那些被设计成可用于C和C++中的头文件,必须使用#define

7、C++11可以使用大括号初始化器用于任何类型。这是一种通用的初始化语法。

8、典型的整型溢出行为如下图所示:


9、通常,int被设置为对目标计算机而言最为“自然”长度。自然长度指的是计算机处理起来效率最高的长度。如果没有非常有说服力的理由来选择其他长度,则应该使用int。

10、iostream 提供了控制符dec,hex和oct(位于名称空间std中)分别用于指示cout以十进制,十六进制和八进制格式显示整数。默认格式为十进制,在修改格式前,原来的格式将一直有效。其代码为cout << hex(不会再屏幕上显示任何内容)。将输出格式修改为十六进制。

11、C++对字符用单引号,对字符串使用双引号。

12、值得类型将引导cout选择如何显示值。

13、C++转义字符编码表如下所示:

字符名称 ASCII符号 C++代码 十进制ASCII码 十六进制ASCII码
换行符 NL(LF) /n 10 0xA
水平制表符 HT /t 9 0x9
垂直制表符 VT /v 11 0xB
退格 BS /b 8 0x8
回车 CR /r 13 0xD
振铃 BEL /a 7 0x7
反谢杠 / // 92 0x5C
问号 ? /? 63 0x3F
单引号 ' /' 39 0x27
双引号 " /" 34 0x22

14、创建常量的通用格式如下:

const type name = value;

注意:应在声明中对const进行初始化。如果在声明常量是没有提供值,则该常量的值将是不确定的,且无法修改。

15、有效位是数字中有意义的位。有效位数不依赖于小数点的位置。

16、如果两个操作数都是整数,则C++将执行整数除法。这意味着结果的小数部分将被丢弃,使得最后的结果是整数。如果其中有一个(或两个)操作数是浮点数,则小数部分将保留,结果为浮点数。

17、将浮点数转换为整型时,C++采取截取(丢弃小数部分)而不是四舍五人。

18、以{ }方式初始化时,其对类型转换的要求更严格,列表初始化不允许缩窄。

19、当运算涉及两种类型时,较小的类型将被转换为较大的类型。

20、强制类型转换不会修改变量本是,而是创建一个新的、指定类型的值。其有两种通用格式:

    (typwName) value  //格式来自于C语言

       typeName (value)    //纯粹的C++格式。

21、C++还引入了4个强制转换运算符。其分别是dynamic_cast、const_cast、static_cast、reinterper_cast。


猜你喜欢

转载自blog.csdn.net/dgreh/article/details/80817668