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