C语言参数赋值

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:42:36
main()
{int i=010,j=10;
printf("%d,%d\n",i,j);
}

结果为什么是“8,10”

i=010在这里是八进制数,j=10是十进制数

i=010 数字前面的0表示8进制,也就是8了,j=10,就是普通的十进制的表示方法,因此用十进制的形式输出就是8,10。
补充:八进制前面用0表示,类似10进制,满8进一,010换成十进制刚好是8,16进制表示为0x。由于阿拉伯数字只有0到9,16进制的情况,必须有一个10到15的表示,这里引进了a到f表示。例如0x1f,表示1*16+f=16+15=31.没有以上两种符号的就是默认的十进制。

整数,C语言中有三种不同的表达形式:
1、十进制整数:如123,-789,0
2、八进制整数:在写法上要加前缀“0”。如012,010
3、十六进制整数:前缀加“0x”,如0x36

10,010,0x10十进制数分别是10,8,16.
八进制数这样的,01,02,03,04,05,06,07,010,011……
对应10进制数的:1, 2, 3, 4, 5, 6, 7, 8, 9

int i=010 相当于二进制,电脑自动转换为十进制,所以输出的结果是8