c语言,整形数据如果以0开头

比如int a=024,然后打印printf("%d",a);输出的结果怎么是。。。。。。。。21

恩,有这个心学习是好的,学C就得钻钻这些角。
让我来给你解释下吧,这里你定义的是整型,然后你给它的是一个8进制位的数,024,当你输出它时,是以10进制输出的,所以最后结果是20,而不是你所说的21.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-10
24前面加了一个0,此时a为八进制数,八进制024转为十进制为20,所以输出结果为20,不是21,兄弟,希望对你有帮助。
注:八进制转为十进制的方法:
024(八进制) = 2 x 8^1 + 4 x 8^0 = 20(十进制)
相似回答