C语言中23和023有什么区别

Python017

C语言中23和023有什么区别,第1张

有,23指的是十进制,023指的是8进制【0开头】;

int a=23,b=023

CString p

p.Format("23=>%d,023=>%d",a,b)

AfxMessageBox(p)

看图

首先,初始化int变量x值为23。

然后,进入do-while循环,首先执行一次循环体中的语句:

printf("%d", x--)

因为自减运算符在变量x后面,所以x的值是在参与一次执行后减少,这里是在被以%d带符号10进制整数形式输出之后减少。所以输出的结果是23原来的值,输出之后,x的值立即自减1变为22。

随后执行while的条件语句:

while (!x)

这句代码表示当!x不等于0,即当x等于0时,进行下一次迭代,否则结束这个do-while循环。因为这里x的值是22,所以!x之后是0,所以do-while循环结束。

main函数结束。

程序实现的是按位数从低到高依次输出各位数,如输入23,输出32,输入1857,输出7581;

举例输入1857,do循环第一次先执行循环体c=num%10,对10取余,c=7,输出7;

然后执行num/=10,即num=num/10,即num=185>0,继续取余,得到c=5输出5;

再次执行num/=10,即num=18>0,继续得到c=8;

继续num/=10后num=1,取余得到c=1;

然后此时num=1再进行num/10后得到num=0,不符合>0则退出循环,最终输出7581。