int x=102,y=012; 说明x为十进制数102,而y以0开头,为8进制数(换成10进制数为10)。
printf("%2d,%d\n",x,y);x时机位数为3,大于%2d中的2,则按照十进制数输出为102。而y按一般十进制数输出为10. 希望对你有帮助,有问题可以再问我。
运行过后结果为:
输出是一行内容为102,012后换行。
格式控制符"%2d"控制的是数值输出位数最少2位。
102,10
//此处换行
y=1*8+2=10;%d是以十进制输出
你把main写成mian了,改正后输出
102,10
因为012是八进制的12,转成十进制就是10
102 10
012(八进制) = 1 * 8 + 2(十进制)