一元运算符真的先被执行了吗?
Does the unary operator really gets executed first?
我有关于优先级的问题。 Java表示这是优先计算运算符(从高到低):
- 后缀一元参数 xyz++, xyz--
- prefixunary opartors ++xyz, --xyz
- typeconversion/casting
- "* / %
- "+ -
- << >>
- < <= > >=
- ==, !=
- &
- 独家
- |
- &&
- ||
- ?:
- =, +=, -=, *=, /=, %=
现在,如果您查看一元运算符,他们会指出:
In the unary postfixnotation , unary gets executed after the expression.
意思是如果你有:
int a = 2;
int b = a++ * 3;
int b
将是 6,因为 a 仅在表达式后得到 +1。
in the unary prefixnotation, unary gets executed before the expression:
int a = 2;
int b = ++a * 3;
int b
将是 9.
我的问题是,这是否意味着后缀一元运算符应该在数字 6 和前缀在数字 1?我哪里看错了?
计算后应用一元运算符的“表达式”是 a
,而不是它可能属于的任何表达式。
我有关于优先级的问题。 Java表示这是优先计算运算符(从高到低):
- 后缀一元参数 xyz++, xyz--
- prefixunary opartors ++xyz, --xyz
- typeconversion/casting
- "* / %
- "+ -
- << >>
- < <= > >=
- ==, !=
- &
- 独家
- |
- &&
- ||
- ?:
- =, +=, -=, *=, /=, %=
现在,如果您查看一元运算符,他们会指出:
In the unary postfixnotation , unary gets executed after the expression.
意思是如果你有:
int a = 2;
int b = a++ * 3;
int b
将是 6,因为 a 仅在表达式后得到 +1。
in the unary prefixnotation, unary gets executed before the expression:
int a = 2;
int b = ++a * 3;
int b
将是 9.
我的问题是,这是否意味着后缀一元运算符应该在数字 6 和前缀在数字 1?我哪里看错了?
计算后应用一元运算符的“表达式”是 a
,而不是它可能属于的任何表达式。