C++ 重载插入器和奇怪输出(用于';20';和';020';) 我学习超载'

C++ 重载插入器和奇怪输出(用于';20';和';020';) 我学习超载',c++,operator-overloading,C++,Operator Overloading,0是C++整数文字的八进制前缀,20为八进制,十进制为16。< /P> 进一步解释:如果文字以0开头,则数字的其余部分将被解释为八进制表示。在您的示例中,2*8^1+0*8^0 最新标准草案的§2.14.2中给出了整数文字的语法 student ob1(20),ob2(020); 你已经写了020个,C和C++中,由于起始点为零,被解释为八进制数(基8)。因此020的值为十进制16。您可以在这里找到答案: 您在文本前面加了一个零,这意味着将数字视为八进制,20oct是16dec。020是20

0是C++整数文字的八进制前缀,20为八进制,十进制为16。< /P> 进一步解释:如果文字以0开头,则数字的其余部分将被解释为八进制表示。在您的示例中,2*8^1+0*8^0

最新标准草案的§2.14.2中给出了整数文字的语法

student ob1(20),ob2(020);

你已经写了020个,C和C++中,由于起始点为零,被解释为八进制数(基8)。因此020的值为十进制16。

您可以在这里找到答案:


您在文本前面加了一个零,这意味着将数字视为八进制,20oct是16dec。

020
是20的八进制,正如
0x20
是20的十六进制。删除前面的0,它应该可以工作。

前导的0指定它是一个八进制数(基数8),因此八进制中的20是16。

它将020解释为一个八进制。2*8=16. 试着把它换成3,030显示24。如果您将0x20设置为32,则将其设置为十六进制。:)

也可以尝试使用0x20。你会感到惊讶的。哈哈……是的,我是……英国电信通过const推荐获得了nwPass学生的分数。否则,当您将其传递到函数中时,您就是在制作副本<代码>ostream&Operator希望您得到答案。为了获得更好的性能,将其声明为:
friend ostream&operator
student ob1(20),ob2(020);