c语言中循环中的问题

img


为啥这两个最后运算结果不一样,左边加上X/=10运算结果为4是对的,右面图片中没加运算结果是5

一个是先除以10,一个是先比较再除以10,当然不一样了

第二种肯定不对啊,等于n从1开始的。
第一种的写法,是为了防止x是0数时,由于while循环条件不满足,如果n初始为0,就不对了,所以n初始为1,同时将x先除以10
这个代码的正确写法应该使用do ... while,比如:
int n= 0;
do
{
n++;
x/=10;
}while(x>0);