c语言中,n-1和n--有什么不同

Python023

c语言中,n-1和n--有什么不同,第1张

既然你这样问,那么不得不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要快,你学下去,就会明白

减了。你可以自己写个程序试一下,比如:

#include <stdio.h>

int main(int argc, char *argv[])

{

int n=10

while(n--)

printf("%3d",n)

printf("\n")

return 0

}

(1).自右向左运算

(2).我们假设n=2,先算n*n即n-=4

(3).目前n=2,则n-=4为n=n-4,那么n=-2

(4).n+=-2,又因为(3)中n的值已经变成了-2,那么n=n-2=-2-2=-4

关键有两个地方,一是自右向左运算,二是在(3)的时候n的值也变成了-2,不知道这样解释你明白没。