数学减法公式:c语言问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 02:11:50
#include<stdio.h>
main( )
{ int i=3,j;
j=(i++)+(i++)+(i++);
printf("i=%d,j=%d\n",i,j);
}]
运算结果为i=6,j=9
谁能详细解说一下为什么是这个结果,谢谢!

i++是做完运算然后加1,也就是做完j=(i++)+(i++)+(i++);以后i才加,因此j算出来是3+3+3=9,i是3+1+1+1=6

你这么做!因为j=(i++)+(i++)+(i++);不在输出的语句里,因为i++;等于3
你把三个i++;放在一起算,就是3+3+3=9,之后再算3个++;i由3变成了6
如果是++i,就先算++;开始时是i=3,加完之后是6。然后再算3个i相加 !
--和它的过程是一样的。这是我总结出的!

谭浩强的教材有这个例题,先把i取出来计算,是9,然后自加3 次是6

这是一种不安全写法, 跟编译器有关. 虽然大多数编译器都为9和6
因为他们基本上都把一条语句作为一次操作的分界, 而后进行后++.
但c并没有规范一定要这么运行.