C++ Primer Plus 学习笔记
第 3 章 处理数据
简单变量
变量名 C++ 命名规则
- 在名称中只能使用字母字符、数字和下划线。
- 名称的第一个字符不能是数字。
- 区分大写字符与小定字符。
- 不能使用C++关键字
- 以两个下划线或下划线和大写字母打头的名称保留给实现(编译器及其使用的资源)使用,以一个下划线开头的名称给实现,用作全局标识符。
- C++对名称的长度没有限制,但有些平台有限制。
*C++的基本整形分别是char
、short
、int
、long
和long long
,其中每个类型都有符号版本和无符号版本。
short
至少16位int
至少与short
一样长long
至少32位,且至少与int
一样长long long
至少64位,且至少与long
一样长
sizeof
运算符返回类型或变量的长度,单位为字节。
可对类型名或变量名使用sizeof运算符。对类型名使用sizeof运算符时,应将类型名放在括号中;但对变量名使用该运算符时,括号是可选的。
头文件climits
定义了符号常量来表示类型的限制。
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的最小值 |
UNIT_MAX | unsigned int 的最大值 |
LONG_MAX | long的最大值 |
LONG_MIN | long的最小值 |
ULONG_MAX | unsigned的最大值 |
ULONG_MIN | unsigned的最小值 |
ULLONG_MAX | unsigned long long的最大值 |
climits文件中包含与下面类似的语句行:
#define INT_MAX 32767
#define
与#include
一样,也是一个预处理器编译指令,工作方式与文本编辑器的全局搜索并替换命令类似,是C语言遗留下来的。有些头文件,尤其是是那些设计成可用于C和C++中的头文件,必须使用#define
。
初始化
int n_int = INT_MAX;
初始化将赋值与声明合并在一起,可使用字符常量、字面值常量来初始化。也可将变量初始化另一个变量,条件是后者已经定义过。甚至可以使用表达式来初始化变量,条件是当程序执行到该声明时,表达式中所有的值都是已知的。
注意:如果不对函数内部定义的变量进行初始化,该变量的的值将是不确定的。这意味着该变量的值将是它被创建之前,相应内存单元保存的值。
C++11 初始化方法
别一种初始化方法,用于数组和结构,但在C++98中,也可以用于单值变量:
int hamburgers = {24};
int emus{7};
int rocs = {};
int psychics{};
首先,采用这种方式,可以使用=
,也可以不使用。
其次,大括号内可以不含任何东西,变量补初始化为零。
第三,这有助于更好地防范类型转换错误。
无符号类型
整形有一种不能存储负数值的无符号变体,优点是可以增大变量能够存储的最大值,使用unsigned
来声明。
注意:unsigned
本身是