ゼロは常にゼロなので、問題にはなりません。しかし、最近友人と話し合ったとき、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