- C++语言由头文件和源文件组成。
- 头文件
- 包含:版权与版本信息,宏定义,函数声明和类的声明。
- 宏定义为是了防止头文件被重复引用。
<>
引用头文件则直接在系统库中查找头文件;""
用头文件则先在当前工程目录下查找,若工程目录中不存在然后在系统库中查找。
- 源文件
- 包含:版权与版本信息,对头文件的引用,系统功能代码的实现。用
ifndef
/define
/endif
结构产生预处理的宏定义块。
- 包含:版权与版本信息,对头文件的引用,系统功能代码的实现。用
- 类成员函数可以在类声明中被定义,并且自动生成内联函数,这虽然会使书写方便,但会造成风格上的不一致,因此建议头文件中只存放声明而不定义。
- 头文件的作用:
- 1.很多时候不便公开头文件代码,用头文件来调用库功能,编译器从库中提取相应的代码;
- 2.头文件能加强安全类型的检查,如果接口实现错误会报错,以便开发者调试。
-
标识符
- 只能是字母、数字、下划线组成,且不能以数字开头。标识符在C++中区分大小写,长度是任意的,一般前1024个是有意义的。C语言中一般前16个是有效的。
-
常量
- 在运行时不能被改变,在定义常量时可以设置初始值。
- 对于常量,编译器将其放置于一个只读的存储区域。
-
变量初始化的几种形式:
int min = 0; //初始化为0 int min = min; //初始化为自身,这种合法,但不明智 int min(10); //隐式初始化为10 int min = 10, max = min + 20; //后续变量可以利用前续变量作为初始化值 int min = int(); //利用数据类型的构造函数初始化 double max = double();
- 变量的声明是告知编译器变量的名称和数据类型,变量的定义是为变量分配存储区域。
- 使用
extern
只声明而不定义变量;若一个文件中声明定义一个全局变量int var=0;
在另一个文件中声明extern int var;
即可访问此变量; - 静态变量
static
存储类型表示变量在函数或文件内的“持久性”,也称为静态变量,静态变量可分为局部静态变量和全局静态变量。- 局部静态变量
- 函数内的变量用
static
修饰时,将被分配在持久的存储区域,当函数调用结束后并不释放,保留其值以便下次调用。 - 局部静态变量的作用域为当前函数,不能被外界函数和文件访问;
- 函数内的变量用
- 全局静态变量
- 作用域仅限于当前定义的文件
- 不能被其它文件使用
extern
关键字访问;
register
- 使用
register
关键字,表示变量将被放置在CPU寄存器中,访问register
变量要比访问普通变量快得多,但register
只能用于局部变量或作为函数的形式参数
- 使用
- 变量有静态存储和动态存储
- 全局变量和静态变量是静态存储的
- 普通的局部变量是动态存储的
auto
关键字表示变量动态存储- 默认情况下,局部变量均属于
auto
变量。
- 数值类型
- 整型
- 有符号型
(signed) int
4Bytes(signed) short (int)
2Bytes(signed) long (int)
4Bytes
- 无符号型
unsigned (int)
4Bytesunsigned short (int)
2Bytesunsigned long (int)
4Bytes
- 有符号型
- 实型
float
4Bytesdouble
8Byteslong double
16Bytes
- 实数比较问题
- 尽量不要使用“==”或“!=”,而要使用“>=”或“<=”之类的运算符。因为用等于或不等于时,若程序精度要求较高,可能产生未知的错误,也可能产生未知的结果。
- 通常在比较实数时要定义实数的精度,在这个精度内来确定两数的等或不等。
- 整型
- 字符类型
- C++中用单引号来确定字符变量,用双引号来确定字符串变量,字符是以ASCII的形式存储的,因此可以直接将整数赋值给字符变量。
- 字符存储用一个字节
- 数组类型
- 数组的初始化要注意一些细节,如:定义二维数组时,可以省略第一维的长度,但不可以省略第二维的长度。
- 布尔类型
- 布尔类型和整数类型可以相互赋值。
- 枚举类型
- 枚举类型是用int类型实现的,占用4个字节,定义格式为:
enum<枚举类型名>{常量1,常量2,…}
,定义枚举类型时可以为各常量提供一个整数值,默认情况第一个数为0,没有定义的值应为前一个值加1。 - 在定义函数时将函数参数设置为枚举类型,这样可以限制调用函数必须提供枚举类型中的某个常量,而不能随意输入一个整数。
- 枚举类型是用int类型实现的,占用4个字节,定义格式为:
https://blog.csdn.net/huixieqingchun/article/details/79342869