petard  

运算符

有几个操作数 就是 几元运算符

1、算术运算符

*运算符* *描述* *操作数个数 (几元运算符)* *组成的表达式的值* *副作用*
+ 正号 1 操作数本身
- 负号 1 操作数符号取反
+ 加号 2 两个操作数之和
- 减号 2 两个操作数之差
***** 乘号 2 两个操作数之积
/ 除号 2 两个操作数之商
% 取模(取余) 2 两个操作数相除的余数
++ 自增 1 (运算符在)操作数自增前或(运算符在)自增后的值 运算符所在位置对 操作数的副作用相同(都自增)
-- 自减 1 (运算符在)操作数自减前或(运算符在)自减后的值 运算符所在位置对 操作数的副作用相同(都自减)

注:一、对于 取余%

​ 1.表达式值得符号(正负)与第一个操作数(被除数)一致

​ 2.取余运算符的操作数必须是整数

​ 二、有副作用的运算符要求:操作数必须是变量的形式!!

2、关系运算符(比较运算符)

注:比较时,有符号转无符号之后再进行比较

*运算符* *描述* *操作数个数(几元运算符)* *表达式的值(int类型)* *副作用*
== 相等 2 0 或 1
!= 不等 2 0 或 1
< 小于 2 0 或 1
> 大于 2 0 或 1
<= 小于等于 2 0 或 1
>= 大于等于 2 0 或 1

3、逻辑运算符

*运算符* *描述* *操作数个数* *表达式的值* *副作用*
&& 逻辑与 2 0 或 1
|| 逻辑或 2 0 或 1
! 逻辑非 1 0 或 1

4、位运算符 (指的是二进制位)

*运算符* *描述* *操作数个数* *副作用*
& 按位与 2
| 按位或 2
^ 按位异或 2
~ 按位取反 1
<< 按位左移 2
>> 按位右移 2

5、赋值运算符

1、左边操作数必须是变量的形式,右边操作数可以是变量、常量、表达式

2、从右向左赋值

*运算符* *描述* *操作数个数* *表达式的值* *(对左边操作数)副作用*
= 赋值 2 左边操作数的值
+= 相加赋值 2 左边操作数的值
-= 相减赋值 2 左边操作数的值
*= 相乘赋值 2 左边操作数的值
/= 相除赋值 2 左边操作数的值
%= 取余赋值 2 左边操作数的值
<<= 左移赋值 2 左边操作数的值
>>= 右移赋值 2 左边操作数的值
&= 按位与赋值 2 左边操作数的值
^= 按位异或赋值 2 左边操作数的值
|= 按位或赋值 2 左边操作数的值

6、三元运算符

条件表达式? 表达式1: 表达式2;

表达式取值规则:
① a 成立,b 作为整个表达式的值
② a 不成立,c 作为整个表达式的值

7.其余运算符

,	二元运算符,表达式的值是第二个操作数的值
sizeof
&
*	——取值运算符
.	——成员选择(对象)
->	——成员选择(指针)

注:添加 () 提高优先级!

二、运算符优先级

(1)不要过多的依赖运算的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用小括号来控制表达式的执行顺序。
(2)不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
(3)运算符优先级不用刻意地去记忆,总体上:一元运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符。

*优先级* *运算符* *名称或含义* *结合方向*
*1* [] 数组下标 左到右
() 圆括号
. 成员选择(对象)
-> 成员选择(指针)
*2* - 负号运算符 右到左
(类型) 强制类型转换
++ 自增运算符
-- 自减运算符
* 取值运算符
& 取地址运算符
! 逻辑非运算符
~ 按位取反运算符
sizeof 长度运算符
*3* / 左到右
*
% 余数(取模)
*4* + 左到右
-
*5* << 左移 左到右
>> 右移
*6* > 大于 左到右
>= 大于等于
< 小于
<= 小于等于
*7* == 等于 左到右
!= 不等于
*8* & 按位与 左到右
*9* ^ 按位异或 左到右
*10* | 按位或 左到右
*11* && 逻辑与 左到右
*12* || 逻辑或 左到右
*13* ?: 条件运算符 右到左
*14* = 赋值运算符 右到左
/= 除后赋值
*= 乘后赋值
%= 取模后赋值
+= 加后赋值
-= 减后赋值
<<= 左移后赋值
>>= 右移后赋值
&= 按位与后赋值
^= 按位异或后赋值
|= 按位或后赋值
*15* , 逗号运算符 左到右
posted on   岌岌无名  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
 
点击右上角即可分享
微信分享提示