代码如下:
#include<stdio.h>
int main(void)
{
int i=2, j=2;
int a, b;
a =(i++)+(i++);
b =(j--)-(j--);
printf("(i++)+(i++) = %d\n",a); //2+2=4
printf("i = %d\n",i); //i=4
printf("(j--)-(j--) = %d\n",b); //2-2=0
printf("j = %d\n",j); //j=0
printf("\n");
return 0;
}
结果如下:
注:软件是VC6.0
!!! gcc 软件运行的结果
(i++)+(i++) = 2+3=5;
i = 4;
(j--)-(j--) = 2-1=1;
j = 0;
不同的编译器编译C语言中,同一变量多个++使用的情况的逻辑不同,容易造成歧义