第1章 开始
(一) 大多数操作系统支持文件重定向, 这种机制允许我们将标准输入和标准输出与命名文件关联起来:
$ addItems<infile >outfile
假定$是操作系统提示符, addItems 是我们的可执行程序, 则上述命令会从一个名为infile的文件读取输入, 并将输出结果写入到一个名为outfile的文件中, 两个文件都位于当前的目录中.
第2章 基本内置类型
(一)算术类型
分为两类:整形 和 浮点型
尺寸在不同的机器上有所差别. 下表列出了c++标准规定的尺寸的最小值, 同时允许编译器赋予这些类型更大的尺寸.
类型
|
含义
|
最小尺寸
|
c++11
新增类型
?
|
bool
|
布尔类型
|
未定义
|
N
|
char
|
字符
|
8
位
|
N
|
wchar_t
|
宽字符
|
16
位
|
N
|
char16_t
|
Unicode
字符
|
16
位
|
Y
|
char32_t
|
Unicode
字符
|
32
位
|
Y
|
short
|
短整形
|
16
位
|
N
|
int
|
整形
|
16
位
|
N
|
long
|
长整形
|
32
位
|
N
|
long long
|
长整形
|
64
位
|
N
|
float
|
单精度浮点数
|
6
位有效数字
|
N
|
double
|
双精度浮点数
|
10
位有效数字
|
N
|
long double
|
扩展精度浮点数
|
10
位有效数字
|
N
|
注意点:
(1) 浮点型可表示单精度,双精度和扩展精度. c++标准指定了一个浮点数有效位数的最小值, 然而大多数编译器都实现了更高的精度. 通常, float以1个字(32 bit)来表示, double以2个字(64 bit)来表示, long double以3个或4个字来表示.
一般来说, 类型float和double分别有7和16个有效位. 类型long double则常常被用于有特殊浮点需求的硬件, 它的具体实现不同, 精度也不同.
(2)
除去布尔型和扩展的字符型(wchar_t, char16_t, char32_t)之外, 其他整形可以划分为带符号的(signed) 和 无符号的(unsigned) 两种.
(3) 与其他整形不同, 字符型被分为了三种: char, signed char, unsigned char.
特别要注意的是:类型char和类型signed char不一样.尽管字符型有三种, 但是字符的表现形式却只有两种:带符号的和无符号的.类型char实际上会表现为上述两种形式中的一种, 具体是哪种由编译器决定. 目前常见的是, 在i686-linux-gnu的gcc中是有符号的, 而在arm-linux-gcc编译器中, char默认是无符号的