C中没有"八进制值"这样的东西.整数以二进制形式存储.
例如,这三个常量:
100120xA所有类型和价值都完全相同.它们只是不同的符号 - 并且差异仅存在于源代码中,而不是在运行时.为变量分配八进制常量不会使变量为八进制.
例如,这个:
int n = 012;
Run Code Online (Sandbox Code Playgroud)
存储值十在n.您可以使用以下几种格式打印该值:
printf("%d\n", n);
printf("0%o\n", n);
printf("0x%x\n", n);
Run Code Online (Sandbox Code Playgroud)
在所有三种情况下,存储的值都将转换为人类可读的字符序列,十进制,八进制或十六进制.
有人为我解决了吗?
不,因为没有实际问题.
(在评论中提到这一点,归功于juanchopanza.)