qq_茬縌境宬長_0
2016-12-29 19:03
#include<stdio.h>
int main()
{
int a=0;
printf("%d\n",a++);
return 0;
a++还是++a都同等于a=a+1,在表达完毕后a的值不是都自增1吗?那为什么这个运算结果是0啊? 求高手解释一下。。。
a++是先取值再运算,而++a是先运算再取值,所以执行a++输出结果为0,执行++a输出结果为1.
a++。计算机语言会先告诉你a是多少。再加。 加好的结果记忆了。但是不会显示出了。所以a是未加时的结果
++a。先给你加好。在告诉你结果。而且前面的a++。加过一了。 所以a=1。然后再加一次再告诉你a是多少
区别。 一个是先输出目前结果再运算。一个是先运算再告诉你最后的结果
其实我觉得可以这么理解,不知道你怎么想的。
printf("%d\n",a++);
和
printf("%d\n",++a);
这两句程序都是要拆解执行的,那么我认为程序运行机制的不同,导致执行结果的改变;
printf("%d\n",a++); =》 printf("%d\n",a); a = a +1; (所谓的先执行再加加)
而
printf("%d\n",++a); =》 a = a + 1; printf("%d\n",a); (所谓的先加加再执行)
希望我这么说你可以理解我的意思吧,哈哈
int a=0;
a原本的值就是0,为什么自增后还是0. 那句话说:”a++还是++a都同等于a=a+1,在表达执行完毕后a的值自增1".
我不明白的是 为什么原本是0自增后的值还是0.这自增运算符不就不起作用了吗?
int a=0;
我不明白,a++自增运算符在变量的后面,所以先取值0,然后再自增1,结果不是应该是1吗?
求解 。。。
C语言入门
926206 学习 · 20797 问题
相似问题