八进制数:一个整型常量的第一个字符是数字0。
易错点:有时候在上下文中为了格式对齐的需要,可能无意中将十进制数写成了八进制数。
0195表示1 * 8^2 + 9 * 8^1 + 5 * 8^0。ANSI标准也禁止这种用法。
八进制的有效字符为0,1,2,3,4,5,6,7
#include <stdio.h>
#include <stdlib.h>
struct {
int part_number;
const char *description;
} parttab[] = {
046, "left-handed widget", /*八进制数*/
047, "right-handed widget",
125, "frammis" /*十进制数*/
};
int main( void ) {
for (int i = 0; i < 3; ++i) {
printf("parttab[%d] = %d\n", i, parttab[i].part_number);
}
printf("\n");
return EXIT_SUCCESS;
}
输出: