#include<stdio.h> void main() { int k=011; printf("%d",k++); }

为什么结果会是9的
2024-11-29 00:34:25
推荐回答(3个)
回答1:

int k=011; 这地方赋值的进制是 8 进制的数 换算成 10进制 是 9
printf("%d",k++); k++ 是先使用k的值,然后子啊给k值加1 ,所以会打印出 9 ,其实最终 k=10

回答2:

因为int k=011为8进制数,11当然就是10进制的9

以0开始表示8进制数,如果你不用011而用11的话,结果就会是11了。

k++ 会在输出后再自加1.

回答3:

http://baike.baidu.com/view/234126.htm;
你那么写相当于是8进制数,转换为10进制就是9,k++表示先执行打印出k,再将k加1,如果换成++k,就会打印出10;