n--,先取n的值进行运算或者操作,运算结束后再n自减
--n:先n自减,再取n的值进行运算或者操作;
所以就上题而言:
第一次循环:while(4--),循环条件判断为真后变成while(3),执行printf,后面的n用3去执行--n后再printf, --n = 2所以输出2;
第二次循环,n=2, 所以while(2--)条件为真,判断结束后n变成1,执行printf,n--=1后面的n取1执行--n后再printf, --n=0所以输出0;
第三次循环,n=0,不执行printf 结束。
望采纳!
既然你这样问,那么不得不j将n-1,n--,--n这三种拿来比较区别1:
n-1后,n的值不变
n--后,n的值减1
--n后,n的值减1
区别2:
将值赋值给另一个参数m后
m=n-1,m的值为n-1
m=n--,m的值为n
m=--n,m的值为n-1
从表面看,可以理解为目前就这两种区别
n-1简单明了,很简洁易懂,不多解释
n--是在运算结束后,n值减小1,因此计算m=n--的时候,先将n的值赋值给m,然后n再减1,所以m的值为n,n的值为n-1
--n是在运算开始前,n值减小1,因此计算m=--n的时候,先将n的值减1,这样n值为n-1,然后在将n的值赋值给m,这样m的值也为n-1
目前个人觉得理解到这里就可以了
至于为什么有n--和--n,而不用n-1,那是因为n--和--n在计算机里的操作比n-1要快,你学下去,就会明白
a+=++b将b自减1然后和a相加,把和在赋值给a。比如b=
5,a
=
8,那么之后b
=
6了,a
=
14.
m-=--n这个是将n先自减1然后作为m的减数,用m减去n,把差再赋值给m.比如m
=
10,n
=
6,运算之后n
=
5,m
=
5。