说明
看《C++ Primer Plus》时整理的学习笔记,部分内容完全摘抄自《C++ Primer Plus》(第6版)中文版,Stephen Prata 著,张海龙 袁国忠译,人民邮电出版社。只做学习记录用途。
目录
3.1 简单变量
内置的 C++ 类型分两组:基本类型和复合类型,本章主要介绍基本类型。
3.1.1 变量名
变量命名时,需遵循以下规则:
- 名称只能使用字母、数字或下划线。
- 名称第一个字符不能是数字。
- 区分大写字母与小写字母。
- 名称不能是 C++ 关键字。
- 以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
- C++ 对名称没有长度限制,但有些平台有长度限制。
倒数第二点原因:使用像 _time_stop 或 _Donut 这样的名称不会导致编译错误,但会导致行为的不确定性,不知道结果将是什么。最后一点需注意:**ANSI C (C99标准) **只保证名称中的前 63 个字符有意义(前 63 个字符相同的名称被认为是相同的,即使第 64 个字符不同)。目前比较流行的有 4 种命名习惯:
- 小驼峰命名法:第一个单词首字母小写,后面单词首字母大写,如 myVariableName。
- 大驼峰命名法:又称帕斯卡命名法(Pascal),所有单词的首字母都大写,如 MyVariableName。
- 匈牙利命名法:变量名 = 属性 + 类型 + 对象描述,如 m_lpctstrStudentName 表示类中一个成员变量(属性m_),类型为指向字符串常量的长指针(类型lpctstr),所指字符串常量用来表示学生姓名(对象描述StudentName)。
- 下划线命名法:用下划线分隔单词,如 my_variable_name。
3.1.2 整型
计算机语言只能表示所有整数的一个子集,存储时使用的内存量越大,可表示的整数值范围也越大。C++ 的基本整型按内存量宽度排序有 char、short、int、long和 C++11 新增的long long,其中每种类型都有符号版本和无符号版本,因此总共有 10 种类型可供选择(实际上short是short int的简称,long是long int的简称,long long是long long int的简称,但一般不使用长名称)。最好在声明变量时就对它的值进行初始化,即将声明语句与赋值语句合并在一起,以防出现未初始化就使用变量的情况,这时变量的值是不确定的。C++ 变量初始化有以下几种方式:- //传统C语言方式
- int uncles = 5;
- //C++支持的方式
- int uncles(5);
- //C++98支持的方式
- int uncles = {5};
- //C++11支持的方式
- int uncles = {5};
- int uncles{5};
- //C++11将变量初始化为0
- int uncles = {};
- int uncles{};
复制代码 3.1.3 符号整型
不是在所有的系统中,每种类型的宽度都相同,例如int不总是 32 位,在早期的 16 位操作系统中,int是 16 位,但在后来的 32 位操作系统以及 64 位操作系统中,int是 32 位。C++ 标准只确保了最小宽度:
- short至少 16 位。
- int至少和short一样宽。
- long至少 32 位,且至少和int一样宽。
- long long至少 64 位,且至少和long一样宽。
想知道某种整型的内存量大小,可以使用sizeof运算符返回类型或变量的内存量宽度,单位为字节(字节的含义也依赖于实现,在一个系统中一个字节可能是 8 位,而在另一个系统中可能是 16 位),对类型名(如int)使用sizeof运算符时,应将名称放在括号里面,但对变量名(如n_short)使用该运算符,括号是可选的。
[code]//对类型名使用sizeof运算符(必要括号)cout |