C和Java中的后缀和前缀运算符产生不同的结果

塔尔西卡诺迪亚

我认为基本算术运算符在大多数语言中具有相同的优先级。但对于以下代码段,

int a = 5;
a = --a + a++;
//print a

C编译器(GNU GCC)给出了我9在java中得到的结果8这是怎么回事?据我说应该是8(4 + 4)

阿美
a = --a + a++;

在C中调用未定义的行为

C99§6.5:“ 2。在上一个序列点与下一个序列点之间,对象的存储值最多只能通过对表达式的求值来修改。此外,先前的值应仅读以确定要存储的值。”

在这种情况下,您a在上一个和下一个之间更改了两次sequence point,因此结果可能是任何值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

前缀和后缀运算符Java

来自分类Dev

前缀和后缀运算符C ++

来自分类Dev

Java中前缀和后缀++运算符之间的区别

来自分类Dev

C#中的前缀和后缀运算符重载

来自分类Dev

C#中的前缀和后缀运算符重载

来自分类Dev

后缀和前缀运算符的行为(Java)

来自分类Dev

后缀和前缀运算符的行为(Java)

来自分类Dev

通过前缀和后缀运算符递增数字

来自分类Dev

Java和Python中运算符优先级的不同结果

来自分类Dev

java和python在逻辑运算符中给出不同的结果

来自分类Dev

java和python在逻辑运算符中给出不同的结果

来自分类Dev

last() 和 [] 运算符给出不同的结果

来自分类Dev

在C99中的复合文字中使用后缀/前缀增量运算符

来自分类Dev

<?=和>?的含义 C ++中的运算符

来自分类Dev

C ++中重载的==和!=运算符

来自分类Dev

Javascript && 和 || 运算符和内联三元函数产生 INSANE 结果

来自分类Dev

C ++运算符“ <”和“>”

来自分类Dev

Java条件运算符和不同类型

来自分类Dev

R中的前缀后缀和前缀后缀

来自分类Dev

运算符*和+在数字火星中产生错误的结果

来自分类Dev

运算符*和+在数字火星中产生错误的结果

来自分类Dev

使用前递增和后递增运算符时,宏产生奇怪的结果

来自分类Dev

在Java字符串比较中,==运算符和hashcode()方法的行为方式不同

来自分类Dev

为什么 sizeof() 运算符在 C 中为“a”和“a”提供不同的值?

来自分类Dev

Java,运算符重载和String的“ +”运算符

来自分类Dev

C ++编译器是否将所有后缀运算符重载都视为相同(-和-的后缀版本)?

来自分类Dev

+ =运算符和新的运算符c#

来自分类Dev

C#和C ++中的新运算符

来自分类Dev

C ++ 14中std :: string的运算符后缀

Related 相关文章

  1. 1

    前缀和后缀运算符Java

  2. 2

    前缀和后缀运算符C ++

  3. 3

    Java中前缀和后缀++运算符之间的区别

  4. 4

    C#中的前缀和后缀运算符重载

  5. 5

    C#中的前缀和后缀运算符重载

  6. 6

    后缀和前缀运算符的行为(Java)

  7. 7

    后缀和前缀运算符的行为(Java)

  8. 8

    通过前缀和后缀运算符递增数字

  9. 9

    Java和Python中运算符优先级的不同结果

  10. 10

    java和python在逻辑运算符中给出不同的结果

  11. 11

    java和python在逻辑运算符中给出不同的结果

  12. 12

    last() 和 [] 运算符给出不同的结果

  13. 13

    在C99中的复合文字中使用后缀/前缀增量运算符

  14. 14

    <?=和>?的含义 C ++中的运算符

  15. 15

    C ++中重载的==和!=运算符

  16. 16

    Javascript && 和 || 运算符和内联三元函数产生 INSANE 结果

  17. 17

    C ++运算符“ <”和“>”

  18. 18

    Java条件运算符和不同类型

  19. 19

    R中的前缀后缀和前缀后缀

  20. 20

    运算符*和+在数字火星中产生错误的结果

  21. 21

    运算符*和+在数字火星中产生错误的结果

  22. 22

    使用前递增和后递增运算符时,宏产生奇怪的结果

  23. 23

    在Java字符串比较中,==运算符和hashcode()方法的行为方式不同

  24. 24

    为什么 sizeof() 运算符在 C 中为“a”和“a”提供不同的值?

  25. 25

    Java,运算符重载和String的“ +”运算符

  26. 26

    C ++编译器是否将所有后缀运算符重载都视为相同(-和-的后缀版本)?

  27. 27

    + =运算符和新的运算符c#

  28. 28

    C#和C ++中的新运算符

  29. 29

    C ++ 14中std :: string的运算符后缀

热门标签

归档