15和015有什么区别?

aya*_*ane 6 c++ char output

一开始这可能看起来是一个愚蠢/琐碎的问题,但是当我这样做时:

char f_gear = 15;
Run Code Online (Sandbox Code Playgroud)

我得到了正常的输出

"?"
Run Code Online (Sandbox Code Playgroud)

但是当我宣布它时,我用零填充它:

char f_gear = 015;
Run Code Online (Sandbox Code Playgroud)

我得到奇怪的输出使文本看起来乱码(在一行)并且空白前一行.当我试图看到个人角色时,我得到以下内容:

"  ??@?S? "
Run Code Online (Sandbox Code Playgroud)

有什么本质的不同?不是15 == 015?

当我发布问题时,== EDIT == Stack Overflow改变了文本.我真正看到的输出是一些空白字符.

RAM*_*RAM 11

不,015指的是八进制数.因此,八进制中的015等于十进制的13.

所以,

char f_gear = 015;
Run Code Online (Sandbox Code Playgroud)

相当于

char f_gear = 13;
Run Code Online (Sandbox Code Playgroud)


jus*_*nvf 7

015是八进制表示法.你可以在这里阅读:http://en.wikipedia.org/wiki/Octal.它用得不多.