先运算和先取值有啥区别啊?还是不明白?
“++的运算”:取值+1
假如有下面代码:
int a = 1; printf("%d\n", a++); // 输出1 printf("%d\n", a); // 输出2
第一个printf要打印出a++的值。所谓先取值再运算是指:a++的值就是a当时的值(即把a的值取出来),在之后a会自增1。 所以a++的值就是1,而在这个语句结束后a的值就自增1,变成2了,所以第二个printf输出2。
如果后两句是这样:
printf("%d\n", ++a); // 输出2 printf("%d\n", a); // 还是输出2
同样第一个printf要打印++a的值。所谓先运算再取值是值:++a的值是先将a自增1,再取这个结果。所以++a的值是a+1 = 2。第一个printf就打印出2了。而这之后a的值还是2。