Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么两种技术中的相同代码表现不同_Java_C_Post Increment - Fatal编程技术网

Java 为什么两种技术中的相同代码表现不同

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++;等

下面是我的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++;等于

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++;