C语言高手进来解释一下这道题!

来源:百度知道 编辑:UC知道 时间:2024/09/23 09:30:46
main()
{int i=010,j=10,k=0x10;
printf("%d%d%d\n",i,j,k);
}

为什么结果是 8 10 16 ,给解释一下,我是个刚学的新手!

int型 0开头的是8进制数
0x开头的是16进制数
而输出是以10进制输出

这个虽然是小问题,不过还是说下好啊!010是8进制数
0x10表示十六进制数, 而你用的是%d所以就要转换成十进制010(8)=8(10)括号里的数表示进制
0x10(16)=16(10)

您好!

这是由于您的输出由%d标记控制为十进制方式所致。

希望对您有所帮助!

基础哦!^_^可以自己试着改这个程序!

同意楼上

同意二楼的 他已经说的很清楚了