相关疑难解决方法(0)

13
推荐指数
2
解决办法
2442
查看次数

运算符优先级,结果是否正确?

可能重复:
未定义的行为和序列点

x这段代码后的价值是多少?

int x = 5;
x = ++x + x++;
Run Code Online (Sandbox Code Playgroud)

在Java中,结果是12,但在C++中,结果是13.

我搜索了Java和C++的运算符优先级,它们看起来一样.那么为什么结果不同呢?是因为编译器吗?

c++ java operator-precedence

8
推荐指数
1
解决办法
614
查看次数

java中( - i + ++ i)中表达式的输出

int i=9;
System.out.println(--i + ++i);
Run Code Online (Sandbox Code Playgroud)

执行时的输出:17
i的最终值是:9

但是根据java中的关联性和优先级规则,我应该首先执行,即从右到左执行10,然后--i给出9 ..添加两者,答案应该是19 ...至于我知道这样的代码在C/C++中给出了未定义的行为,但在java中,规则是严格定义的,并且没有序列点的概念.所以,任何人都可以澄清问题,因为我真的很困惑这个?还有一些书中提到后增量和后减量运算符是LTR关联的.但是在其他一些书中,它给出了所有增量和减量(post和pre)都是RTL关联的.!! 任何人都可以为java提供正确的运算符优先级和关联表吗?

java operator-precedence associativity

3
推荐指数
1
解决办法
2754
查看次数

java vs c整数

可能重复:
++ i + ++ i + ++ i in Java vs C.

使用Java:

public class Main {
    public static void main(String[] args) {
        int a=10;
        a=a++;
        a=a++;
        System.out.println(a);
    }
}
Run Code Online (Sandbox Code Playgroud)

产量:10

使用turbo C:

void main(){
    int a=10;
    a=a++;
    a=a++;
    printf("%d",a);
}
Run Code Online (Sandbox Code Playgroud)

输出:12这是怎么回事?

c java

2
推荐指数
1
解决办法
601
查看次数