i++ 和++i的计算 我真的晕了!

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:04:49
main()
{ int i=3,m ;
m=(i++)+(++i)+(++i)+(++i)+(i++);
printf("\n%d ",m);
}

输出结果 m = 18 怎么解释我都解释清啊!请各位高手详解!
这是TC编译出来的结果,这个你们知道其运算规律吗??

不要去研究这个问题了,这个问题和硬件以及编译器设计有关。
如果你是学习软件的,结果是不确定!

注意:
i++和++i仅能知道,引用的时候的值和到分号结束的时候的值。
编译器可以决定增量的具体时机。

gcc上运行为25。

迷途知返吧,不要研究这些,在不同系统里面的结果都不相同,谁都不会在程序里面这样写,除了脑壳有问题的人

你只要知道,++i是先+后用i,i++是先用i再++,就可以了,这个程序很无聊

Eclipse 结果28