如题:按我的理解是等于5的,请教下为何c语言中答案是4
java:
int i =2;
int temp;
temp = (i++) + (i++);
System.out.println(temp);
c语言
int i =2;
int temp;
temp = (i++) + (i++);
printf("%d",temp);
如果你多试几个编译器就知道,这个结果除了4 5还可以是别的。因为这个叫做未定义行为。
http://www.it610.com/article/1508275.htm
讨论这种问题是愚蠢的。
C中 i++ 是i参与运算后,i的值再自增1,即temp=2+2=4;
java是i++ 是后自增,就是先用i再增1 ,第二个i为3,即temp=2+3=5
C语言中不同编译器会有不同的结果。