提问人:Yannick Mussche 提问时间:5/25/2022 最后编辑:Yannick Mussche 更新时间:5/25/2022 访问量:56
一元运算符真的会先被执行吗?
Does the unary operator really gets executed first?
问:
我有这个关于优先事项的问题。Java 指出,这是计算运算符的优先级(从高到低):
- postfix 一元翼 xyz++, xyz--
- 前缀unary opartors ++xyz, --xyz
- 类型转换/转换
- "* / %
- "+ -
- << >>
- < <= > >=
- ==, !=
- &
- 独家
- |
- &&
- ||
- ?:
- =, +=, -=, *=, /=, %=
现在,如果你看一下一元运算符,它们会指出:
在一元后缀符号中,一元在表达式之后执行。
这意味着,如果您有:
int a = 2;
int b = a++ * 3;
int b
将为 6,因为 a 在表达式后仅得到 +1。
在一元前缀表示法中,一元在表达式之前执行:
int a = 2;
int b = ++a * 3;
int b
将是 9。
我的问题是,这是否意味着后缀一元运算符应该在数字 6 和前缀应该在数字 1?我看错了什么?
答:
0赞
Scott Hunter
5/25/2022
#1
在计算后应用一元运算符的“表达式”是 ,而不是它可能属于的任何表达式。a
评论
a++ * 3
int b = a * 3; a = a + 1;
++a * 3
a = a + 1; int b = a * 3;