簡體   English   中英

一元運算符真的首先被執行嗎?

[英]Does the unary operator really gets executed first?

我有這個關於優先級的問題。 Java 聲明這是制定運算符的優先級(從高到低):

  1. 后綴一元運算符 xyz++, xyz--
  2. 前綴運算符 ++xyz, --xyz
  3. 類型轉換/鑄造
  4. "* / %
  5. “+ -
  6. << >>
  7. < <= > >=
  8. ==,!=
  9. &
  10. 獨家的
  11. |
  12. &&
  13. ||
  14. ?:
  15. =, +=, -=, *=, /=, %=

現在,如果您查看一元運算符,它們會聲明:

在一元后綴符號中,一元在表達式之后執行。

這意味着如果您有:

int a = 2;
int b = a++ * 3;

int b將為 6,導致 a 僅在表達式之后獲得 +1。

在一元前綴表示法中,一元在表達式之前執行:

int a = 2;
int b = ++a * 3;

int b將為 9。

我的問題是,這是否意味着后綴一元運算符應該在數字 6 和前綴在數字 1? 我看錯了什么?

在求值之后應用一元運算符的“表達式”是a ,而不是它可能屬於的任何表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM