1.1基本内置类型
BOOl 布尔型 --
char 字符型 8
wchar_t 宽字符型16
short 短整形 16
int 整形 (16)32
long 长整形 32
float 单精度浮点型6位有效数字
double 双精度浮点型10位有效数字
long double扩展精度浮点型10位有效数字
short 类型为半个机器字(word)长,int为一个机器字长,而long类型为一个或两个机器字长(32位机器中int与long类型字长相同)
1.2整形赋值
对于unsigned类型,编译器必须调整超出范围的值使其满足要求:编译器会将该值对unsigned类型的可能取值数目求模,然后取所得值。对于unsigned类型来说,负数总是超出其取值范围。
1.3浮点型
float :一个字(32位),double:两个字(64位),long double:三个或者四个字(96或128位)
2.1字符值常量
只有内置类型有字面值,没有类类型的字面值。称为常量是因为它的值不能修改。
字符‘\0’表示“空字符”
2.2变量
对象:就是内存中具有类型的区域
初始化:复制初始化和直接初始化
int ival(1024)和int ival=1024;
2.3初始化规则:
1.内置类型变量的初始化
在函数体外定义的变量都初始化成0,在函数体内定义的内置类型变量不进行自动初始化
2.类类型变量的初始化:
每个类都定义了该类的对象初始化函数,否则提供默认构造函数。不管变量定义在哪里,默认构造函数都会被使用
2.4声明和定义
变量的定义:用于变量分配存储空间,还可以为变量指定初始值,变量有且只有一个定义
声明:用于向程序表明变量的类型和名字,可以通过extern关键字声明变量而不定义它,声明可多次
2.5 const 限定符
const 对象默认为文件的局部变量,非const变量默认为extern。要是const变量能够自其他文件中访问,必须显式地指定它为extern
2.6 引用
就是对象的别名,主要用作函数的形式参数
引用必须用于该类型引用同类型的对象初始化
当引用初始化后就不可更改引用绑定的对象
const 引用:是指向const 对象的引用
const int ival=1024;
const int &refval=ival;//ok
int &ref2=ival;//error
非const 引用只能绑定到与该引用同类型的对象
const引用则可以绑定到不同但相关的类型的对象或绑定到右值
2.7 typedef 名字
只是定义现有数据类型的同义词
三种目的:
1.为了隐藏特定类型的实现,强调适用类型的目的
2.简化复杂的类型定义,使其更易与理解
3.允许一种类型用于多目的,同时使得每次使用该类型的目的明确
2.8枚举
不但定义了整数常量集,,而且把它们聚集成组
enum open_modes {input,output,append}; 默认第一个成员为0,后续加1
枚举类型的初始化或赋值,只能通过其他枚举成员或同一枚举类型的其他对象来进行
2.8 类类型
每个类都定义了一个接口和一个实现。接口有使用该类代码需要执行的操作组成。实现一般包括该类所需要的数据。
struct和class关键字的区别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private。
2.9 设计头文件
1.头文件用于声明而不是定义
有列外:可以定义类、值在编译时就知道的const对象和inline函数,因为const变量默认是文件的局部变量。编译器在编译时只能进行常量表达式运算。
2.当我们在头文件中定义了const变量后,每个包含头文件的源文件都有了自己的const变量,其名称和值都一样。
如果const变量不是用常量表达式初始化,那么他就不应该 在头文件中定义