这个++I和I++的问题,求解释啊,大家帮忙啊

inti=5;intj=(i++)+(i++)+(i++);i=5;intk=(++i)+(++i)+(++i);printf("j:%d,k:%d\r\n",j,k);... int i = 5;
int j = (i++)+(i++)+(i++);
i = 5;
int k = (++i)+(++i)+(++i);
printf( "j: %d, k: %d\r\n", j, k );
为什么这里j是15,而k是22呢?

谁能解释清楚下,多谢!
把运算的步骤写出来吧,谢谢了,我新手,不懂
展开
 我来答
OA咨询专家
2012-07-26 · TA获得超过299个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:58.6万
展开全部

递增运算符在变量后,即i++,会新增一个临时变量,不会立刻改变变量i的值,等表达式计算完毕后再修改i的值。

递增运算符在变量前,即++i,直接修改变量i的值,每运行一次,就会对变量本身进行一次修改。

运行结果如下:

这是对基本语法测试,不同编译器结果不一样,建议LZ参考语法手册,这样会更明白。

以下是Javscript的执行结果:

希望有所帮助,谢谢! 

追问
你能把运算步骤写出来给我参考吗
‘、你是怎么算的啊?就像j=(i++)(i++)(i++)可以吗?和K=(++i)(++i)(++i)
富港检测东莞有限公司
2024-12-24 广告
ISTA2A是国际安全运输协会(ISTA)制定的标准之一,旨在评估产品在运输过程中受到的冲击、振动和其他环境因素对产品的影响程度。作为富港检测技术(东莞)有限公司的工作人员,您可以联系ISTA官方或认可的测试实验室,以获取有关ISTA2A测... 点击进入详情页
本回答由富港检测东莞有限公司提供
百度网友ae2c8c8
2012-07-26 · 超过14用户采纳过TA的回答
知道答主
回答量:34
采纳率:50%
帮助的人:19.5万
展开全部
j = 5+5+5; 然后i自加
k = 6+7+8; i已经率先自加了
但是我k == 21呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式