各位大佬,求问y为什么输出为10,求原理。
#includeint main()
{
int x=102,y=012;
printf("%2d,%2d",x,y);
}
在C语言里,如果是 y = 012,0开头,会被当作8进制。类似地,如果y = 0x12,则被当作16进制。8进制的12,也就是8x1+2=10如果是0x12,就是16x1+2=18了。
打印时用字母o和%表示,即o%表示八进制,定义的时候用数字0开头表示八进制。1*8+2=10