#include<iostream>
#include<ctime>
#include<iomanip>
using namespace std;
int main()
{
cout << ('9' - '3') << endl;
cout << sizeof('9' - '3');
}
运行结果为6 4
为什么
```
字符的算术运算,实际上是字符的ASCII代码运算。'9' - '3'就是算ascll的差值
6是一个整数,所以sizeof('9' - '3')相当于sizeof(int) 输出4
C和C++的字符的存储实际上储存的是它的ascii码,也就是一个 1Bytes 的无符号整型数字,所以在执行字符的加减法的时候就是数字之间的加减,不会有类型转换;而在输出字符的时候,因为使用了%c或%s进行输出,所以程序会查表找到某个ascii码对应的字符再输出,所以用%c或%s输出可以看到字符,但实际存储的是一个数字,所以它也可以不需转换类型就用%d输出或者参与含有数字的运算。