我的c++程序返回了一个奇怪的输出

My c++ program return a weird output

本文关键字:一个 输出 程序 c++ 返回 我的      更新时间:2023-10-16

我的代码是:

#include <iostream>
using namespace std;  
int main()
{
    int num=0;
    cout << 'nDigits=' << num << endl;
    return 0;
}

我得到的输出是:17692393570。有人知道为什么会发生这种事吗?。谢谢你抽出时间!

'nDigits='是一个多字符字符常量。

当使用ASCII码以十六进制写入时,它变为6E 44 69 67 69 74 73 3D,而1769239357等于0x6974733D

Tt似乎使用最后4个字节作为值,因为多字符字符常量太长,无法容纳32位整数。

将来自num0相加,因此输出变为17692393570