C语言这道题n--到底是这printf结束之后才减还是在哪里减啊?

Python024

C语言这道题n--到底是这printf结束之后才减还是在哪里减啊?,第1张

下面是具体分析:

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。