当C/C++中的数字常量以0为前缀时,这意味着什么?

Cur*_*sJC 8 c c++ compiler-construction syntax numbers

好的...所以我有一个愚蠢的想法,并尝试将值0123放入一个int,只是好奇看看会发生什么,我假设当我打印的值我得到123,但我得到83 ...有什么想法吗?在编译器/内存中发生什么使该值变为83?

我在C++和C中使用GCC编译器尝试了这个,并尝试使用浮点数产生相同的结果.

Ric*_*der 16

在C/C++中,前缀为'0'的数字文字是八进制(基数为8).

http://www.cplusplus.com/doc/tutorial/constants/