在网上找了半天,八进制前面是字母o还是数字0,回答的也不一,最终有个答案还是比较靠谱的
如下:
1:在平时的书写的时候,八进制前面加0表示这个数是八进制,如 int a=034;(此时为数字0)
2:但是在程序中如果要输出八进制却用%o或%O 如:a=9;printf("%o",a);(此时为字母o)输出的结果就会变为11,如果是printf("%#o",在输出的时候就会加上那个前缀0,
一个例子更好的说明
如果真的以O开头表示一个数字,看下面一段代码
int o123;(没问题,标识符字母开头,包含字母数字)
int a = o123; (如果为字母o,那是把变量赋值给a呢,还是八进制123赋值给a, )
歧义了。结果还是很明显,靠谱.....
|