|
发表于 2013-5-31 16:01:08
|
显示全部楼层
本帖最后由 wolfmanj 于 2013-5-31 16:06 编辑
看了上边的解释,还是不太明白,我用的也是vc6.0,
我把上边的i值,打印出来了,不知道对不对:
#include <stdio.h>
void main()
{
int i=8,j=5,p,q;
printf("%d,%d\n",++i,i); /* 打印9,i 值此时9 */
printf("%d,%d\n",--i,i); /* 打印8,i 值此时8 */
printf("%d,%d\n",i++,i); /* 打印8,i 值此时9 */
printf("%d,%d\n",i--,i); /* 打印9,i 值此时8 */
printf("%d,%d\n",-i++,i); /* 打印-8,i 值此时9*/
printf("%d,%d\n",-i--,i); /* 打印-9,i 值此时8 */
i=5; /*我又重新给i 赋值为5*/
p=(i++)+(i++)+(i++); /*我计算的p 值为 5+6+7=18,i 值此时为8*/
q=(++j)+(++j)+(++j); /*我计算的q 值为 6+7+8=21,j 值此时为8*/
printf("%d,%d,%d,%d\n",p,q,i,j);
}
i和j的计算结果和机器的一样,就是p和q的结果为什么自己和机器算的结果不同呢?
下面是机器显示的结果:
|
|