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。