减去0时会发生什么

hel*_*llo -2 c++ arrays char

对于输入1234,输出是134.这里发生了什么?当我在这种情况下打印[1]时它什么都不打印.

#include <iostream>
using namespace std;

int main() {
    char a[100];
    cin >> a;
    a[1] = a[1] - '0';
    cout << a;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

use*_*989 7

'0'指的是可打印字符0,在ASCII中转换为值48 '2',其值为50,因此从48减去50得到2,即文本开头字符.此字符不会转换为可打印字符,因此cout不会打印它.