我很困惑我的程序输出:
#include<stdio.h>
int main()
{
if(11==011)
printf("True");
else
printf("False");
}
Run Code Online (Sandbox Code Playgroud)
输出是"False".
以下代码
#include <iostream>
using namespace std;
int main()
{
cout << 11 << endl;
cout << 011 << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生输出:
11
9
Run Code Online (Sandbox Code Playgroud)
这是因为在数字前面添加0会产生八进制数.
所以,
011 (base 8) = 1*8^1 + 1*8^0 = 9 (base 10)
Run Code Online (Sandbox Code Playgroud)
这可以解释为什么条件评估为false.
| 归档时间: |
|
| 查看次数: |
1181 次 |
| 最近记录: |