c语言自增自减运算

a=3a=(i++)+(i++)+(i++)不考虑运算类型等等的问题单算这个式子,应该得到12还是15?而且下面分开写的语句是这样的i=3a=i++b=i++c=i++d... a=3
a=(i++)+(i++)+(i++)
不考虑运算类型等等的问题
单算这个式子,应该得到12还是15?
而且下面分开写的语句是这样的
i=3
a=i++
b=i++
c=i++
d=a+b+c
从这个式子上来算的话,是4+4+4,应该=12?
求解答
第一个式子应该等于多少?第二个式子应该等于多少?
一楼和谭爷书上写的一样。。。我仔细看看再回来采纳。。麻烦大家耐心等待一下吧
展开
 我来答
随意的风k
2012-03-14 · TA获得超过209个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:140万
展开全部
楼上你错了~~ 对自增的理解不对哦~
第一个式子 a = 9;
第二个式子 a = 3, b = 4 ,c = 5 , d = 3+4+5 = 12
原理:自增运算中,++或者--在变量后面的话是要先进行运算的~ 所以第一个式子中先进行括号运算,在进行赋值运算,最后再完成自增运算,所以a=9, 而i=6;
第二个式子同理, i先赋值给变量后自增。
楼主不相信的话可以写个程序运行一下~。该好好复习一下谭浩强的c语言了~
追问
不需要复习。。我初学,就是看谭爷的书学的,到这里看不懂才来提问的。。。想先把这些东西看懂后再写程序
淦海瑶s1
2012-03-14 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:762万
展开全部
你可以打印出abci看看啊

++在后面是用完在自加一
这样
a=3,b=4,c=5,i最后是6
d=3+4+5=12

a=(i++)+(i++)+(i++)
但是这个表达式,不同的编译器给出的结果是不同的
i要是初始值为3的话
有两个结果,一个是顺序运算,也就是a=3+4+5=12,i的值最后是6
还有一个解释就是,运行完着三个i++,也就是是i=5时全部加,也就是a=5+5+5=15,最后i=6

这样在不同编译器上有不同的结果的表达式,最好不要用,移植性太差,不利于跨平台移植
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超人汉考克一世
2012-03-14 · TA获得超过4983个赞
知道大有可为答主
回答量:2978
采纳率:0%
帮助的人:1518万
展开全部
第一个是12
第二个 a=3,b=4,c=5,最后i=6, d=12
追问
第一个的12是4+4+4算出来的吗?
第二个式子为什么a=3 ? a自增运算一次不是就变成4了吗?
追答
第一个是 3+4+5

第二个不是i 自加吗, 先赋值给a,i 再自加1
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ek...r@163.com
2012-03-14
知道答主
回答量:19
采纳率:100%
帮助的人:15.4万
展开全部
第一个等于9
第二个12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式