代码之家  ›  专栏  ›  技术社区  ›  mawia

java中的序列点概念

  •  10
  • mawia  · 技术社区  · 16 年前

    我是Java的新手,有C语言背景。我正在读哈立德·穆哈尔的书。 在第126页,他举了一个例子

       int i = 10;
    
       int k = ++i + --i; // ((++i) + (--i)).
    

    这显然违反了C中的序列点概念,即不能在同一序列点中多次更改变量的值。 也许他举这个例子只是为了解释前缀一元运算符的概念及其副作用,但这样一个明显违反语言基本规则的例子在著名的哈立德·穆哈尔(Khalid Moughal)一书中是不可能出现的。

    所以请确认一下。

    希望你们这些人把它带进正气。

    谢谢,

    马维亚

    2 回复  |  直到 13 年前
        1
  •  8
  •   Community Mohan Dere    9 年前

    我的问题是相同的序列点规则是否适用于java?

    不,Java中没有序列点。Java中定义了计算顺序(etc)。

    同时阅读 this 回答。

        2
  •  0
  •   York    11 年前

    不,在java中没有序列点的概念,而且序列的顺序是完全定义的。一般来说,表达式是从左到右求值的是的。为了正式定义,您可以阅读JLS第15.7节关于评估顺序的内容。 看到了吗 this