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

标签 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

我不明白为什么这两种语言给出不同的输出。 我在下面提到了链接 What is x after "x = x++"?

最佳答案

在 x++ 之后的 java 中,x 的值没有变化

x = x++;等于

int i= x;
x = x + 1;
x = i;

所以 xi 保持相同

您可以从这里阅读更多内容:Why are these constructs (using ++) undefined behavior?

关于java - 为什么两种技术中的相同代码表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993032/

相关文章:

java - TOMCAT 在更新 web.xml 时显示 java.lang.IndexOutOfBoundsException

java - 为什么 IS_AUTOINCREMENT 元数据列根据 MS SQL Server 的类型返回不一致的值?

在 Linux 内核中创建您自己的自定义信号

java - 在 Java 中,++x 是否比 x++ 更高效?

java - 如何在两个日期框zk之间进行过滤

java - 为什么我们总是将 Hibernate、Spring 和 Strut 放在一个应用程序中?

c - C 中的指针变量

c - 使用链表存储txt的句子

java - SCJP程序给出输出8 2怎么办?

c - 增量运算符中的左值问题