首页 > 解决方案 > C++:为什么这些结果不同?

问题描述

为什么这两个示例在 C++ 中的输出不同?

int a=025; 
float b=5.5; 
cout<<a+b; 

26.5

int a=25; 
float b=5.5; 
cout<<a+b; 

30.5

标签: c++

解决方案


cppreference

八进制文字是数字零 (0) 后跟零个或多个八进制数字 (0, 1, 2, 3, 4, 5, 6, 7)

025实际上与十进制相对应的八进制文字也是如此,21这就是您的答案相差 4(25-02525-21)的原因。


推荐阅读