运算符与表达式
一、表达式
1、表达式介绍
变量和常量解决了数据的存储问题,而表达式则用于数据的处理,它是计算的的基本建立块。在C#中,将变量、常量和运算符组合在一起,便形成了表达式。
2、
二、运算符
1、运算符介绍
运算符用于解决数据的处理方式,根据能够处理的操作数的多少,可以分为:
一元运算符——处理一个操作数;
二元运算符——处理两个操作数;
三元运算符——处理三个操作数。
2、数学运算符
运算符 |
类别 |
示例表达式 |
运算结果 |
+ |
二元 |
变量1=变量2+变量3 |
变量2和变量3的和 |
- |
二元 |
变量1=变量2-变量3 |
变量2的值减去变量3的值所得的值 |
× |
二元 |
变量1=变量2×变量3 |
变量2和变量3的乘积 |
/ |
二元 |
变量1=变量2/变量3 |
变量2的值除以变量3的值所得的值 |
% |
二元 |
变量1=变量2%变量3 |
变量2的值除以变量3的值所得的余数 |
+ |
一元 |
变量1=+变量2 |
变量1的值等于变量2的值 |
- |
一元 |
变量1=-变量2 |
变量1的值等于变量2的值乘以-1 |
3、比较运算符
运算符 |
类别 |
示例表达式 |
运算结果 |
== |
二元 |
变量1=变量2==变量3 |
如果变量2的值等于变量3的值,则变量1的值为true,反之为false |
!= |
二元 |
变量1=变量2!=变量3 |
如果变量2的值不等于变量3的值,则变量1的值为true,反之为false |
< |
二元 |
变量1=变量2<变量3 |
如果变量2的值小于变量3的值,则变量1的值为true,反之为false |
> |
二元 |
变量1=变量2>变量3 |
如果变量2的值大于变量3的值,则变量1的值为true,反之为false |
<= |
二元 |
变量1=变量2<=变量3 |
如果变量2的值小于或等于变量3的值,则变量1的值为true,反之为false |
>= |
一元 |
变量1=变量2>=变量3 |
如果变量2的值大于或等于变量3的值,则变量1的值为true,反之为false |
4、逻辑运算符
运算符 |
类别 |
示例表达式 |
运算结果 |
! |
一元 |
变量1=!变量2 |
逻辑非,如果变量2的值为true(false),则变量1的值为true(false) |
&& |
二元 |
变量1=变量2&&变量3 |
逻辑与,如果变量2的值和变量3的值都为true,则变量1的值为true,反之为false |
|| |
二元 |
变量1=变量||变量3 |
逻辑或,只要变量2的值或变量3的值有一个为true,则变量1的值为true,反之为false |
注意,&&和||具有短路计算规则,即可能会不完全运算而得到结果
5、赋值运算符
运算符 |
类别 |
示例表达式 |
运算结果 |
= |
二元 |
变量1=变量2 |
将变量2的值赋予变量1 |
+= |
二元 |
变量1+=变量2 |
将变量1和变量2值的和赋予变量1 |
-= |
二元 |
变量1-=变量2 |
将变量1的值减去变量2的值的结果赋予变量1 |
*= |
二元 |
变量1*=变量2 |
将变量1的值乘以变量2的值的结果赋予变量1 |
/= |
二元 |
变量1/=变量2 |
将变量1的值除以变量2的值的结果赋予变量1 |
%= |
二元 |
变量1%=变量2 |
将变量1的值除以变量2的值的余数赋予变量1 |
6、运算符的优先级
优先级 |
运 算 符 |
优 先 级 由 高 到 低 |
++,--(用作前缀);(),-(一元),!,~ |
*,/,% |
|
+,- |
|
<,>,<=,>= |
|
==,!= |
|
& |
|
^ |
|
| |
|
&& |
|
|| |
|
=,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|= |
|
++,--(用作后缀) |
类 别 |
运 算 符 |
说 明 |
位运算符 |
& |
将操作数转换位二进制数,并按位进行与运算 |
| |
将操作数转换位二进制数,并按位进行或运算 |
|
移位运算符 |
<< |
将操作数转换为二进制数,然后左移 |
>> |
将操作数转换为二进制数,然后右移 |
|
赋值运算符 |
<<= |
将操作数转换为二进制数,然后左移赋值 |
>>= |
将操作数转换为二进制数,然后右移赋值 |
|
成员访问 |
. |
成员访问 |
索引 |
[] |
索引 |
转换 |
() |
强制转换 |
条件 |
?: |
三元if语句 |
创建对象 |
new |
创建对象的一个实例 |
类型信息 |
as |
安全转换为指定类型 |
is |
检查所给类型是否为指定类型 |
|
溢出 |
checked |
控制溢出检查上下文 |
unchecked |
控制溢出检查上下文 |
|
间接寻址和地址 |
* |
指针取消引用 |
-> |
指针成员访问 |
|
[] |
指针索引 |
|
& |
取地址 |