为了账号安全,请及时绑定邮箱和手机立即绑定

为什么运算结果是0?

#include<stdio.h>

int main()

{

int a=0;

printf("%d\n",a++);

return 0;

a++还是++a都同等于a=a+1,在表达完毕后a的值不是都自增1吗?那为什么这个运算结果是0啊?     求高手解释一下。。。

正在回答

5 回答

a++是先取值再运算,而++a是先运算再取值,所以执行a++输出结果为0,执行++a输出结果为1.

0 回复 有任何疑惑可以回复我~
#1

qq_茬縌境宬長_0 提问者

求解释
2016-12-30 回复 有任何疑惑可以回复我~

a++。计算机语言会先告诉你a是多少。再加。 加好的结果记忆了。但是不会显示出了。所以a是未加时的结果
++a。先给你加好。在告诉你结果。而且前面的a++。加过一了。 所以a=1。然后再加一次再告诉你a是多少
区别。 一个是先输出目前结果再运算。一个是先运算再告诉你最后的结果

0 回复 有任何疑惑可以回复我~
#1

Simon_______

你知道3-4练习题怎么解吗。不懂
2016-12-31 回复 有任何疑惑可以回复我~
#2

qq_茬縌境宬長_0 提问者

a+b%(a+b)/a+a*b-b =3+4%7/a+a*b-b //先算括号里的 =3+4/3+3*4-4 //在求余数,注意:余数若大于除数,就等于他本身(除数),4/7=5余5。余数5大于除数4,所以余数是4 =3+1+12-4 //然后再算乘除法,余数忽略 =12
2017-01-01 回复 有任何疑惑可以回复我~
#3

qq_茬縌境宬長_0 提问者

写错了4/7=0.5余5
2017-01-01 回复 有任何疑惑可以回复我~
#4

Simon_______

非常感谢
2017-01-01 回复 有任何疑惑可以回复我~
#5

Simon_______ 回复 qq_茬縌境宬長_0 提问者

非常感谢
2017-01-01 回复 有任何疑惑可以回复我~
#6

qq_茬縌境宬長_0 提问者

不用谢,在这里面都是互相帮助,互相学习的嘛。
2017-01-01 回复 有任何疑惑可以回复我~
查看4条回复

其实我觉得可以这么理解,不知道你怎么想的。

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);   (所谓的先加加再执行)

希望我这么说你可以理解我的意思吧,哈哈


2 回复 有任何疑惑可以回复我~
#1

qq_天一生水_0

你说的我懂了,谢谢
2016-12-31 回复 有任何疑惑可以回复我~

int a=0;

a原本的值就是0,为什么自增后还是0.   那句话说:”a++还是++a都同等于a=a+1,在表达执行完毕后a的值自增1".

我不明白的是  为什么原本是0自增后的值还是0.这自增运算符不就不起作用了吗?

0 回复 有任何疑惑可以回复我~

int a=0;

我不明白,a++自增运算符在变量的后面,所以先取值0,然后再自增1,结果不是应该是1吗?

求解  。。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么运算结果是0?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信