转义字符: 为什么 '0'
的值不是 0
(escape character)#
通常而言, 字符字面值直接表示要显示的内容, 例如 '0'
, 'a'
, ','
等. 所以 cout << '0';
会直接输出 0.
但是我们又认为, 数值 0 也是一个比较重要的字符, 可 '0'
已经用于表示数字 0 了, 于是我们决定用 '\0'
来表示数值 0.
其中, \ 是转义符号, 加上它表示该字符是有特殊的含义, 例如 '\0'
表示数值 0, '\n'
表示换行符 (newline), '\''
表示单引号.
这引出另一个问题: 如果我要输出 \ 呢? 由于 \ 已经作为了转义字符, 我们使用 '\\'
来表示字符 \.
个位数与数字字符间的转换#
int
和 char
之间的转换仅基于数值:
'\0'
#1int value = 0;
2char digit = value; // '\0' 字符, 即数值 0
'0'
#1int value = 30;
2char digit = value; // '0' 字符, 即数字 0
也就是说, 由于 '0'
的值不是 0, 如果想得到个位数对应的显示字符, 我们需要对它的值进行偏移:
整数个位数转换为对应数字字符#
1int value = 5;
2char digit = value + '0';
数字字符转换为对应整数个位数#
1char digit = '5';
2int value = digit - '0';