/*********** 测试程序:“test.C”***********************************************************************/
#include <stdio.h>
main()
{
int i,a,b,c,d,e,f,g,h,j,k,m,n,o,p,q;
i=a=b=c=d=e=f=g=h=j=k=m=n=o=p=q=1;
printf(" x=i=%d\n\n x=i++=%d\n x=++i=%d\n\n",
i, a++, ++b );
printf(" x=(i++)+(++i)=%d\n x=(++i)+(i++)=%d\n\n",
(h++)+(++h), (++j)+(j++) ) ;
printf(" x=(i++)+(i++)=%d\n x=(++i)+(++i)=%d\n\n",
(c++)+(c++), (++d)+(++d) ) ;
printf(" x=(i++)+(i++)+(i++)=%d\n x=(++i)+(++i)+(++i)=%d\n\n",
(e++)+(e++)+(e++), (++f)+(++f)+(++f) ) ;
printf(" x=(++i)+(++i)+(++i)+(++i)=%d\n\n",
(++g)+(++g)+(++g)+(++g) ) ;
printf(" x=(i++)+(i++)+(++i)=%d\n x=(i++)+(++i)+(i++)=%d\n x=(++i)+(i++)+(i++)=%d\n\n",
(k++)+(k++)+(++k), (m++)+(++m)+(m++), (++n)+(n++)+(n++) ) ;
printf(" x=(i++)+(++i)+(++i)=%d\n x=(++i)+(i++)+(++i)=%d\n x=(++i)+(++i)+(i++)=%d\n\n",
(o++)+(++o)+(++o), (++p)+(p++)+(++p), (++q)+(++q)+(q++) ) ;
}
/****************程序结束分隔线***********************************************************************************/
.
.
=============程序运行结果分隔线================================================
TC2.0编译运行结果:(符合通常对++运算符的理解)
x=i=1
x=i++=1
x=++i=2
x=(i++)+(++i)=4
x=(++i)+(i++)=4
x=(i++)+(i++)=3
x=(++i)+(++i)=5
x=(i++)+(i++)+(i++)=6
x=(++i)+(++i)+(++i)=9
x=(++i)+(++i)+(++i)+(++i)=14
x=(i++)+(i++)+(++i)=7
x=(i++)+(++i)+(i++)=7
x=(++i)+(i++)+(i++)=7
x=(i++)+(++i)+(++i)=8
x=(++i)+(i++)+(++i)=8
x=(++i)+(++i)+(i++)=8
VC++6.0编译运行结果:(匪夷所思的结果,至今未能参透其中奥秘)
x=i=1
x=i++=1
x=++i=2
x=(i++)+(++i)=4
x=(++i)+(i++)=4
x=(i++)+(i++)=2
x=(++i)+(++i)=6
x=(i++)+(i++)+(i++)=3
x=(++i)+(++i)+(++i)=10
x=(++i)+(++i)+(++i)+(++i)=15
x=(i++)+(i++)+(++i)=4
x=(i++)+(++i)+(i++)=6
x=(++i)+(i++)+(i++)=6
x=(i++)+(++i)+(++i)=7
x=(++i)+(i++)+(++i)=7
x=(++i)+(++i)+(i++)=9