|
1鱼币
本帖最后由 wolfmanj 于 2013-5-31 16:19 编辑
看了小甲鱼的c 语言教学视频,对i++和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的结果为什么自己和机器算的结果不同呢?
下面是机器显示的结果:
|
|