C++中的请问这个自增怎么理解? 例如: a=5,b=5,c,d; c=a++-3; d=++a

C++中的请问这个自增怎么理解?例如:a=5,b=5,c,d;c=a++-3;d=++a-3;输出c和d,为什么两者不等呢?我理解的是,这式子无论先运算再加还是先加再运算... C++中的请问这个自增怎么理解?

例如:
a=5,b=5,c,d;
c=a++-3;
d=++a-3;
输出c和d,为什么两者不等呢?
我理解的是,这式子无论先运算再加还是先加再运算,结果不应该一样的吗?
展开
 我来答
one_in_zero
2014-01-02 · TA获得超过1019个赞
知道小有建树答主
回答量:383
采纳率:60%
帮助的人:151万
展开全部
++在前面是先自增1,拿自增后的数据去计算;而++在后面则是先拿原来的值计算,再自增1。
因此c=a++-3是用a=5去计算的,而d=++a-3,是用a=6去计算的。
如果分别执行c=a++-3和d=++a-3,执行后,c和d的值是不一样的,但是a的值都是6。
maduai
2014-01-02
知道答主
回答量:35
采纳率:50%
帮助的人:10.8万
展开全部
额.
1. c=(a=5)-3,然后a+1;(此时a=6)
2.d=(a+1=7)-3,
能一样么。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一只奋斗猪
2014-01-02 · 超过23用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:71.2万
展开全部
++在前先自增再运算,++在后先运算在自增
所以:c=a++-3;-->c=5-3=2//a再++,a=6;
d=++a-3;-->c=7-3=4;//a先自增后为7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-02
展开全部
++i是先i自加1,然后在使用i的值 i++是先用i的值,在i自加1 比如 #include <stdio.h> main() { int i,j,a,b; i=0; j=0; a=i++; b=++j; printf("a=%d,b=%d",a,b); getch()(); } a为0,因为i先赋值给a,然后自加1 b为1,因为j先自己1,在赋值给b i和j都为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南风不归处
2014-01-02
知道答主
回答量:39
采纳率:0%
帮助的人:16.4万
展开全部
i++是先用i进行运算,再对i加1,++i是先对i加1,在用加1后的值进行运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式