鱼C论坛

 找回密码
 立即注册
查看: 3819|回复: 1

加加减减的算法

[复制链接]
发表于 2012-11-16 23:55:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼的《零基础入门学习C语言教程》视频第六讲里,有一个例子:(用的是VC++6.0)
#include <stdio.h>
void main()
{
        int i=5,j=5,p,q;
        p=(i++)+(i++)+(i++);
        q=(++j)+(++j)+(++j);
        printf("%d,%d,%d,%d\n",p,q,i,j);
}
q的值为什么会等于22呢?不是6+7+8=21吗?
像上面的例子,p=(i++)+(i++)+(i++);第一个i,第二个i,第三个i的值分别是多少?
q=(++j)+(++j)+(++j);第一个j,第二个j,第三个j的值分别是多少?
有哪位高手能详细解答下,谢谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-17 13:52:57 | 显示全部楼层
q=(++j)+(++j)+(++j);这条语句的等号右侧在VC++是一个表达式一个表达式地运算的,
从左到右先运算(++j)+(++j),而这个表达式并不是j自加一次就进行运算,而是把两次
自加运算计算完成后再进行相加运算,所以实际上,j自加两次为7,7+7=14,
然后再运算加上后面的(++j),实际上就是运算14+(++j),这时j自加完成后为8,
所以q=14+8=22。
我也是经过实验才了解到的,有不对的地方多多指教啊。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表