【问题标题】:Why a[21] is not equal to a[021]? [duplicate]为什么 a[21] 不等于 a[021]? [复制]
【发布时间】:2021-06-18 02:58:24
【问题描述】:
#include<bits/stdc++.h>
using namespace std;
int a[500];
int main()
{
    a[21]=10;
    if(a[21]==a[021])puts("Yes");
    else puts("No");
    return 0;
}

g++ -std=c++11

输出是No,谁能告诉我为什么?

【问题讨论】:

  • 021 是八进制文字 -- 十进制的 17

标签: c++


【解决方案1】:

在 C++ 中,整数文字前面的 0 表示值是八进制的(类似于 0x21 表示值是十六进制的方式)。

这些值中的每一个都是不同的。这是一个快速的在线演示:

http://cpp.sh/3cws4n

注意:cout 的默认输出格式是十进制,因此您看到的值是十进制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-08
    • 2019-10-18
    • 2023-02-13
    • 1970-01-01
    • 2016-04-25
    • 2018-07-05
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多