加加减减运算

inti=5;p=(++i)+(++i);为什么p=14,而p=(++i)时,p=6;p=(++i)+(++i)+(++i)时,p=22。这是怎么算出来的?还有p=i+(... int i=5;
p=(++i)+(++i);
为什么p=14,而p=(++i)时,p=6;p=(++i)+(++i)+(++i)时,p=22。这是怎么算出来的?
还有p=i+(++i)+(++i)和p=(++i)+i+(++i),得出p=19;但是p=(++i)+(++i)+i,p=21。这又是为什么?
展开
 我来答
朋涵韵uS
2014-08-31 · TA获得超过882个赞
知道答主
回答量:131
采纳率:0%
帮助的人:64.3万
展开全部
k++ 叫 后缀加,属于自增1运算: k=k+1.
k-- 叫 后缀减,属于自减1运算: k=k-1.
++k 叫 前缀加,属于自增1运算: k=k+1.
--k 叫 前缀减,属于自减1运算: k=k-1.
后缀加,后缀减, 在表达式里 用 原来的值 参加 表达式 运算,出了表达式,再自增或自减。
前缀加,前缀减, 先自增或自减, 在表达式里 用 新的值 参加 表达式 运算。
---------
z=(k++)+(k++)+(k++);
变成:
z= (k) + (k) + (k);
k=k+1; k=k+1; k=k+1;
--------
j=1;
q=(++j)+(++j)+(++j);
变成:
j=j+1;j=j+1;j=j+1; (得2,3,4)
q 的计算,结果不统一!看编译器的处理,看编译时是否选优化,选什么优化
如果优化/O1, q=j+j+j; q = 4+4+4 = 12
------
把所有的括号去掉,你要计算什么?
把所有的括号去掉,
z=k+++k+++k++; 可能产生多义性。
把所有的括号去掉,
q=++j+++j+++j; 语法上错误
-----
不提倡使用:
z=(k++)+(k++)+(k++);
q=(++j)+(++j)+(++j);
-----
不使用:
z=k+++k+++k++;
q=++j+++j+++j;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式