各位大佬,求问y为什么输出为10,求原理。
#include
int main()
{
int x=102,y=012;
printf("%2d,%2d",x,y);
}
各位大佬,求问y为什么输出为10,求原理。
#include
int 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了。