linux环境
#include <stdio.h>
main(){
int i=8,j=8;
int b,c,d,e,f,g;
printf("i=%d\n",i);
printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",i,++i,i++,++i,i++,++i,i--,i++);
//printf求值顺序虽是自右至左,但是输出顺序还是从左至右
//i++是先拷贝后加1,++i是先加1后拷贝
//每次i++拷贝都放在不同的位置,每次++i拷贝放在同一个位置
//i++
b=j; j=j+1;
//i--
d=j; j=j-1;
//++i
j=j+1;c=j;
//i++
f=j; j=j+1;
//++i
j=j+1;c=j;
//i++
g=j; j=j+1;
//++i
j=j+1;c=j;
//i
e=j;
printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",e,c,g,c,f,c,d,b);
}
vc6.0环境
#include <stdio.h>
main(){
int i=8,j=8;
int b,c,d,e,f,g,h,k,m;
//printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
printf("i=%d\n",i);
printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",i,++i,i++,++i,i++,++i,i--,i++);
//printf求值顺序虽是自右至左,但是输出顺序还是从左至右
//i++是只拷贝不执行,++i是先加1后,拷贝
//每次都拷贝都放在不同的位置
//
//i++
b=j;
//i--
d=j;
//++i
j=j+1;h=j;
//i++
f=j;
//++i
j=j+1;k=j;
//i++
g=j;
//++i
j=j+1;m=j;
//i
e=j;
printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",e,m,g,k,f,h,d,b);
}
这样结果是对的,但是内部运行不是这样?