慕村1253227
2017-05-21 11:10
#include <stdio.h>
int main()
{
int a=100;
printf("%d\n",a++);
printf("%d\n",++a);
printf("%d\n",--a);
printf("%d\n",a--);
printf("%d\n",a+1);
printf("%d\n",a);
return 0;
}
结果是100 ,102,101,101,101,100
++自增1--自减1 那a++不是101么?a--不是99么?
可以详细解答一下吗??
//a++与++a虽然运行完结果一样,但是运行顺序不一样,a++先将已有a值输出,再对a进行重新赋值,a的新值将被应用到下一个循环,此循环仍用a++之前的a值;而++a先将a值自增1,得到新的值,将这个值赋给a,再将a输出。a--与--a的关系也一样。放到例子中来说就是如下: #include <stdio.h> int main() { int a=100; printf("%d\n",a++);//a值先输出,故为100,再赋值,故a=101,此结果应用到下一循环; printf("%d\n",++a);//a值先进行新赋值,a=a+1,即a=102,(由于a的值已被赋为101,故此处为102);再输出102. printf("%d\n",--a);//先计算,a=101,再输出101; printf("%d\n",a--);//先输出101,再计算a=100; printf("%d\n",a+1);//直接输出101; printf("%d\n",a);//输出100. return 0; }
printf("%d\n",--a);//先计算,a=101,再输出101;为啥不是98
printf("%d\n",a--);//先输出101,再计算a=100;为啥不是99
++a和--a的运算规则是先运行后取值,就a++说明,a自增1后,再取值;a++和a--的运算规则是先取值后运算;
a++表示出来是100,实际上是表示未运算时就已经取值出来的,而它运算后就是101
a++是计算之后自增,++a是计算前自增,int a=100,a++即显示100,但存入编译器的a为101
C语言入门
926349 学习 · 20799 问题
相似问题