1. c++ 语言的几种基本类型:字符型(char),整型(int),浮点型(float)等。
2. c++定义了一组表示整数,浮点数,单个字符和布尔值的算术类型,另外还定义了一种称为void的特殊类型,void类型没有对应的值,仅用在有限的一些条件下,通常用作无返回值函数的返回类型。
3.整型:表示整数,字符和布尔值的算术类型的合称。
4.除bool类型外,整型可以是带符号的(signed),也可以是无符号的(unsigned).整型int,short和long都默认为带符号型,要获得无符号型则必须指定该类型为unsigned.另外unsigned int类型可以简写为unsigned.
5.char有三种不同的类型:普通char,unsigned char和signed char。但是只有两种表达方式,即unsigned char 和signed char。(为什么还要划分出一个没有表示出来的char呢?)
6.求模:8位signed char 中只有8个bit的空间,336的二进制是1 0101 0000 .需要9个bit的空间才能完整存储。因此把336赋值到8位unsigned char 中的时候,就会把高于8位的值丢失。336就会变成0101 0000就是80.
所谓求模就是把高于8位的值去掉。
7.在c++中因为有求模的过程,导致把附属赋值给unsigned类型是合法的。
8.以0(零)开头的字面值整数常量表示八进制,以0x或0X开头的表示十六进制.通过在数值后面加L或者l指定常量为long类型。在数值后面加上u是定义为unsigned类型。在数值后面加上f表示单精度,数值后面加上L表示扩展精度。使用科学计数法时,指数用e表示。默认的浮点字面值常量为double类型。
9.可打印的字符型字面值通常用一对单引号来定义。
10.不可打印字符就是不可显示的字符,如退格或者控制符。
如: 换行符 \n 水平制表符 \t 纵向制表符 \v 退格符 \b 回车符 \r 进纸符 \f
报警符 \a 反斜线 \\ 疑问号 \? 单引号 \' 双引号 \" 空字符 \0
11.在一行的末尾加一反斜杠符号可将此行和下一行当作同一行。此方法依赖于很少使用的程序格式化特性。(什么是程序格式化特性?)
12.变量(对象):内存中具有类型的区域 。
13.左值可以出现在赋值语句的左边或者右边,右值只能出现在赋值的右边。变量是左值,因此可以出现在赋值语句的左边,数字字面值是右值,因此不能被赋值。
14.标识符不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母。有些标识符(在函数外定义的标识符)不能以下划线开头。
15.C++支持两种初始化变量的形式:复制初始化和直接初始化。
16.初始化不是赋值:初始化是指创建变量并给它赋初始化值,而赋值则是擦出对象的当前值并用新的值代替。
17.定义如何初始化的成员函数称为构造函数。
18.在函数体外定义的变量都初始化成0,在函数体里定义的内置类型变量不进行自动初始化。变量在使用前尽量进行初始化。
19.通过extern关键字声明变量名儿不定义它。它只说明变量定义在程序的其他地方。程序中的变量可以多次申明,但是只能定义一次。变量在使用前必须定义或者声明。
20.只有当extern声明位于函数外不时才可以含有初始化式。
21.当局部作用域中的变量与全局作用域的变量冲突时,会屏蔽全局作用域中定义的变量值。
22.const用于定义一个特定的数值。
23.除非特别说明,在全局作用域申明的const变量是定义该对象的文件的局不变量。此变量值存在于那个文件中,不能被其他文件访问。要是const变量能够在其他文件中访问,必须显式地指定它为extern,即extern申明。
24.引用只是对象的另一个名字。
24.传递分为两类,一类是基础类型的传递是直接拷贝,对象传递则是引用。原因是出于空间内存的考虑。
25.typedef用来定义类型的同义词
26.如果使用class关键字来定义类,那么定义在第一个访问标号前的任何成员都隐式指定为private;如果使用struct关键字,那么这些成员都是public。