可以使用影响表达式计算的运算符的优先级对表达式中的术语进行分组,其中某些运算符的优先级与其他运算符的优先级相比较高,并且在对运算符进行分组时,优先级较高的运算符在以下情况下被给予第一优先级:与表达式求值优先级较低的运算符相比,不同类型的运算符有后缀运算符、一元运算符、乘法运算符、加法运算符、移位运算符、关系运算符、相等运算符、按位与运算符、按位异或运算符、按位或运算符、逻辑与运算符、逻辑或运算符、条件运算符、赋值运算符和逗号运算符。
C# 中运算符优先级的功能
为了理解 C# 中运算符优先级的工作原理,我们需要知道运算符的优先级顺序。高位的优先顺序如下:
1.后缀运算符
- 这包括运算符 ()[]->.++–
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
2.一元运算符
- 这包括运算符 + – ! ~ ++ —(类型)* &sizeof
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从右到左。
3.乘法运算符
- 这包括运算符 */%
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
4.加法运算符
- 这包括运算符 +-
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
5.移位运算符
- 这包括运算符 <<>>
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
<>>
6.关系运算符
- 这包括运算符
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
7.相等运算符
- 这包括运算符 == !=
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
8.按位与运算符
9.按位异或运算符
10。按位或运算符
11。逻辑与运算符
- 这包括运算符 &&
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
12。逻辑或运算符
- 这包括运算符 ||
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从左到右。
13。条件运算符
- 这包括运算符 ?:
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从右到左。
14。赋值运算符
- 这包括运算符= += -= *= /= %= >>=
- 每当这些运算符在表达式中使用并考虑求值时,它们的结合性都是从右到左。
15。逗号运算符
现在我们知道了在计算表达式时考虑的运算符的优先顺序,让我们通过一个示例来了解优先运算符的工作原理。考虑以下声明:
int y = 2 + 3 * 5;
这条语句执行后y的值是多少?
- 在上面的语句中,运算符 + 和 * 与 3 关联。正如我们所了解的运算符和 * 的优先级高于 + 的优先级一样,表达式 3 * 5 将首先执行,然后执行表达式 3 * 5 的结果。表达式与 2 相加。因此上述语句中 y 的值为 17。
- 如果 + 的优先级高于 *,那么表达式 2 + 3 会先被执行,结果表达式会乘以 5。那么执行该语句后 y 的值为 25。因为我们要通过C# 中运算符的优先顺序,* 的优先级高于 +,表达式的结果为 17。
C# 中运算符优先级示例
演示运算符优先级的 C# 程序。
代码:
using System;
namespace Op
{
public class OpPrec
{
public static void Main(string[] args)
{
int res;
int x = 4, y = 5, z = 3;
res = --x * y - ++z;
Console.WriteLine(res);
bool res1;
res1 = y >= z + x;
Console.WriteLine(res1);
}
}
}
登录后复制
在上面的程序中,在表达式 –x * y – ++z 中,首先计算 –x 和 ++z,然后将 –x 的结果值与 y 相乘,然后从结果中减去结果值++z 的值按照 C# 中的运算符优先级。在表达式 y >= z + x 中,首先计算 z+x,然后根据 c# 中的运算符优先级将结果值与 y 的值进行比较。
输出:
结论
在本文中,我们通过定义和示例了解了 C# 中运算符的优先级、它们的优先顺序以及运算符优先级的工作原理。
以上是C# 中的运算符优先级的详细内容。更多信息请关注PHP中文网其他相关文章!