如何解释将一个空字符串加上一个字面值的这种输出结果。

#include<string>
#include<iostream>
using namespace std;
int main(){
    string s;//空字符串
    s += 9;
    cout << s << endl; 
    s += '9';
    cout << s << endl;
    return 0;
} 

图片说明

查ascii表可以得知,数字9表示 tab 制表位。
所以 s += 9;相当于 s += '\t';

可以
s+=(‘0’+9)
字符‘9’的ascii码并不是9