i=5,p=(i++)+(i++)+(++i)怎么理解,输出P和i,求高手解释

 我来答
张春吉001
推荐于2017-09-02
知道答主
回答量:31
采纳率:0%
帮助的人:21.5万
展开全部
首先关于前++ 和 后++ ,你一定会知道的。
关键就在于 + 号的运算顺序.
还有++是对一块内存进行的操作.
好入正题:
第一个+号时 执行 (i++) + (i++)
此式说明两个 i++ 要在完成 加法运算符后进行 i++
就解释了 (i++) + (i++) 等同于 5 + 5
加过之后 i 的值变为 7 (经过两次++)
10 + (++i) 这就很简单了
10 + 8 = 18 嘛
要是不懂的话
可以继续问我
更多追问追答
追问
很感谢你的回答,能否继续询问下还有一个程序是j=5;q=(++j)+(++j)+(++j),能解释下么非常感谢,我知道的是j=8,但是q的值不知道怎么算,自己得出的是q=6+7+8,是这样么?因为++j是先执行j+1,再取J我这样的理解对么?
追答
嗯 不知道我这么说你能不能理解
首先 + 号是双目运算符
(++i) + (++i) 在运算加号前i的值就已经加过两次了
++i 前后操作的是同一块内存 确实第一次++i i=6 第二次 ++i i=7 但你注意前后的 ++i 所更改的是同一块内存, 也就是说在进行加法运算的时侯 内存中 i 的值已经变成 7 了
(++i ) + (++i) == 7 + 7
后面的你应该就知道了
动物百科集
2012-05-27
知道答主
回答量:15
采纳率:0%
帮助的人:5.1万
展开全部
p=5+6+8 第一个(i++)中是这样理解 先调用i后i再自增1 所以第一次调用完后 i=6
第二个(i++)调用的时候 i=6 调用完 i=7 (++i)是i先自增然后在调用 所以调用的时候i为8;
所以答案 你就知道了
追问
这样得出的应该是p=19,i=8,但是我看到的答案是p=18,i=8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iandjava
2012-05-27 · TA获得超过281个赞
知道小有建树答主
回答量:398
采纳率:100%
帮助的人:292万
展开全部
p等于16 i等于8
是这样的p=5+5+6,是从右向左算的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哼哼猪ET
2017-12-04
知道答主
回答量:1
采纳率:0%
帮助的人:1026
引用张春吉001的回答:
首先关于前++ 和 后++ ,你一定会知道的。
关键就在于 + 号的运算顺序.
还有++是对一块内存进行的操作.
好入正题:
第一个+号时 执行 (i++) + (i++)
此式说明两个 i++ 要在完成 加法运算符后进行 i++
就解释了 (i++) + (i++) 等同于 5 + 5
加过之后 i 的值变为 7 (经过两次++)
10 + (++i) 这就很简单了
10 + 8 = 18 嘛
要是不懂的话
可以继续问我
展开全部
答案,是自右向左算,所以是 8 7 6 ,不是6 7 8。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式