C++ 字符运算操作符
有趣的是,在整数上使用的数学运算同样可以被用在字符上,例如
char letter;
letter = 'a' + 1;
cout << letter << endl;
输出字母b。尽管对字符使用乘法在语法上是合法的,但这几乎从来都不会用到。
前面我说过你只能给整型变量赋整数值,给字符变量赋字符值,但这并不完全正确。在某些情况下,C++对类型进行了自动转换,例如,以下写法是合法的:
int number;
number = 'a';
cout << number << endl;
结果是97,C++中使用这一数字表示字母'a'。然而,把字符当做字符处理,把数字当做数字处理通常是一个好主意,除非有一个很好的理由,才把一种类型转换成另一种类型。
自动类型转换是在设计一种编程语言时存在的共同问题的一个例子,它和形式体系有冲突,形式体系要求形式语言,应该具备无例外的简单规则,然而便利性要求编程语言易用于实践。
大部分时候,便利性会胜出,这对于高手程序员通常是好事,他们摆脱了严格而笨拙的形式体系。但对于菜鸟程序员来说并非好事,复杂的规则以及大量的例外会使他们陷入困惑。在这本书中,我试图通过强调规则并忽略大多例外来简化学习。