Java 为什么两种技术中的相同代码表现不同
下面是我的C代码片段Java 为什么两种技术中的相同代码表现不同,java,c,post-increment,Java,C,Post Increment,下面是我的C代码片段 void main(){ int x = 7; x = x++; printf("%d",x); } 产出:8 public static void main(String[] args){ int x = 7; x = x++; System.out.println(x); } 产出:7 我不明白为什么两种语言的输出都不同。 我参考了下面的链接 在java中,x++之后,x的值没有变化 x=x++;等
void main(){
int x = 7;
x = x++;
printf("%d",x);
}
产出:8
public static void main(String[] args){
int x = 7;
x = x++;
System.out.println(x);
}
产出:7
我不明白为什么两种语言的输出都不同。
我参考了下面的链接
在java中,x++之后,
x的值没有变化
x=x++;等于
int i= x;
x = x + 1;
x = i;
因此x
与i保持相同
您可以从这里阅读更多内容:在第二个示例中,赋值首先保存x的值,然后将x设置为其值加1,然后,
最后,将x重置回其原始值。
种类:
int temp=x;
x=x+1;
x=temp;
这会在C中给出任意结果,主要取决于编译器。阅读C中的顺序点
。你可以参考Dennis ritchie的C编程
为什么这等同于int i=x;x=x+1;x=i;在java中不是在C@RohitKumar请浏览所附的链接。第一个代码片段是C语言的。与这篇著名的文章完全相同!!![链接这里][1][1]:它在哪里说他们应该有同样的行为?
x=x++;