0 は 10 進数リテラルですか、それとも 8 進数リテラルですか? 質問する

0 は 10 進数リテラルですか、それとも 8 進数リテラルですか? 質問する

ゼロは常にゼロなので、問題にはなりません。しかし、最近友人と話し合ったとき、8 進数リテラルは現在ほとんど使用されていないと言われました。その後、私のコード内の整数リテラルのほとんどすべてが実際には8進数、つまり であることに気づきました0

8 進リテラルは C++ 文法に準拠していますか0? 標準では何と言っていますか?

私が知っている唯一の実際の用途は、UNIX ファイルのアクセス許可です。

ベストアンサー1

はい、C++ では8 進数リテラル0です。

C++ 標準によれば:

2.14.2 整数リテラル [lex.icon]

integer-literal:  
    decimal-literal integer-suffixopt  
    octal-literal integer-suffixopt  
    hexadecimal-literal integer-suffixopt  
decimal-literal:  
    nonzero-digit  
    decimal-literal digit  
octal-literal:  
    0                           <--------------------<Here>
    octal-literal octal-digit

おすすめ記事