C++ 15和015之间有什么区别?

C++ 15和015之间有什么区别?,c++,char,output,C++,Char,Output,起初,这似乎是一个愚蠢/琐碎的问题,但当我这样做时: char f_gear = 15; 我得到了正常的输出 "☼" 但是当我声明它时,用零填充它: char f_gear = 015; 我得到了奇怪的输出,使文本看起来乱七八糟(在一行中),并空白前一行。当我尝试查看单个字符本身时,我得到以下结果: "  ◘◘@╧S☻ " 本质上有什么不同?15==015不是吗 ==编辑== 堆栈溢出在我发布问题时更改了文本。我真正看到的输出是一些空白字符。否,015表示八进制数。所以,八进制的015等

起初,这似乎是一个愚蠢/琐碎的问题,但当我这样做时:

char f_gear = 15;
我得到了正常的输出

"☼"
但是当我声明它时,用零填充它:

char f_gear = 015;
我得到了奇怪的输出,使文本看起来乱七八糟(在一行中),并空白前一行。当我尝试查看单个字符本身时,我得到以下结果:

"  ◘◘@╧S☻ "
本质上有什么不同?15==015不是吗

==编辑==
堆栈溢出在我发布问题时更改了文本。我真正看到的输出是一些空白字符。

否,015表示八进制数。所以,八进制的015等于十进制的13

所以

相当于

char f_gear = 13;

015是八进制表示法。您可以在此处阅读:。它使用不多。

所有以0开头的数字文字都是八进制。

例如,如果我们写数字“15”。编译器将在二进制中识别为:0000 1111


如果我们写数字015,编译器会将其识别为八进制,并将其视为二进制的0000 1101。

char f_gear=015被视为八进制,因此它相当于char f_gear=13。 ASCII 13表示回车,这是导致结果的原因。
下面的代码片段显示了值

请原谅,如果是重复的,我从来不知道以0开头的数字是八进制的。没问题。您可能也会发现这很有趣:@jogojapan您是如何将文本作为超链接添加到您的评论中的?我可以在答案中这样做,但在评论中,我无法使用这种技巧。@Joshpett在上面的“可能重复”案例中,它是自动发生的,因为每当有人投票以重复的形式结束问题时,就会插入该评论。但在一般情况下,您可以使用与普通帖子相同的标记语法:
[anchortext](href)
,例如
[link to google](https://www.google.com/)
将生成一个新的代码。
char f_gear = 13;