C++基础---运算符
来源:互联网 发布:麻将洗牌算法 编辑:程序博客网 时间:2024/06/12 00:32
1. 运算符
1.1 运算符的定义
- 运算符(也称操作符): 指可以进行运算操作的符号。
- 运算符的作用:用于执行程序代码运算,会针对一个或以上操作数来进行运算,提供给运算符进行操作的数值称为操作数。
1.2 运算符的种类
- 赋值运算符:作用是把某个常量或变量或表达式的值赋值给另一个变量。得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为它们出现在赋值语句的右边。常数只能作为右值。
(1)赋值运算符:“=”; - 算术运算符:有两个单目和五个双目运算符。
(1)双目加法/单目正:“+”;
(2)双目加法/单目负:“-”;
(3)双目乘法:“*”
(4)双目除法“/”;
(5)双目取余:“%”; - 逻辑运算符:根据表达式的值来返回真值或是假值。
(1)逻辑“与”:“&&”(当所有条件同时为真,逻辑判断才为真);
(2)逻辑“或”:“||” (当任一个条件为真,逻辑判断即为真);
(3)逻辑“非”“!”(当条件为假,逻辑判断为真); - 关系运算符:是先对两个表达式进行比较,然后返回一个真/假值。
(1)大于:“>”
(2)小于:“<”
(3)大于或等于:“>=”
(4)小于或等于:“<=”
(5)等于:“==”
(6)不等于:“!=” - 自增自减运算符:对变量的操作结果是增加1和减少1。
(1)自增1:“++”
(2)自减1“- -” - 复合赋值运算符:实际上是一种缩写形式,使得对变量的改变更为简洁。
(1)加法赋值:“+=”
(2)减法赋值:“-=”
(3)乘法赋值:“*=”
(4)除法赋值:“/=”
(5)模运算赋值:“%=”
(6)左移赋值:“<<=”
(7)右移赋值:“>>=”
(8)位逻辑与赋值:“&=“
(9)位逻辑或赋值:”|=“
(10)位逻辑异或赋值:“^=” - 条件运算符(三目运算符):唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。
(1)<表达式1>?<表达式2>:<表达式3>
在运算中,首先对表达式1进行真假判断,
如果为真,则返回表达式2的值;
如果为假,则返回表达式3的值。
int a=1, b=2, c;
c = (a>b) ? a : b; =>2 - 逗号运算符:多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
a=(b=2,c=7,d=5); => a=5
a1=(++b,c- -,d+3); => a1=8
1.3 运算符的优先级和结合性
运算符的优先级和结合性列表
优先级 运算符 结合性 1 :: 左 2 . -> [] () 左 3 ++ - - ~ ! - + & * () sizeof new delete castname_cast< type > 单目运算符 右 4 .* ->* 左 5 * / % 左 6 + - 左 7 << >> 左 8 < <= > >= 左 9 == != 左 10 & 左 11 ^ 左 12 l 左 13 && 左 14 ll 左 15 ? : 右 16 = *= /= %= += -= <<= >>= &= l= ^= 右 17 throw 左 18 , 左注:结合性是指如果表达式中遇到相邻两个运算符是相同优先级,先做哪个僵持不下时,以结合性定夺。如a=b=1; “=”是赋值运算符, 查表在第16级,结合性是右结合,表示先做b=1,再做a=b,最后a的值等于b的值,都是1。
参考文献:
[1]《C++全方位学习》范磊——第五章
[2]《C++程序设计教程(第二版)》钱能——第四章
[3] 百度搜索关键字:C++运算符、运算符的种类、运算符的优先级和结合性
0 0
- C语言基础 运算符
- C语言基础-运算符优先级
- C语言基础-----运算符与表达式
- C语言基础系列--运算符
- <C/C++基础> 重载运算符
- C基础 - 运算符(5)
- 黑马程序员--C语言基础-运算符
- 黑马程序员-----------C语言基础-----------运算符
- C语言基础(三)运算符
- C语言基础 运算符和表达式
- C语言基础 三元运算符
- 【C语言基础】-03运算符
- 【C++】C++运算符重载-基础
- C语言基础学习运算符-基本算术运算符
- C语言基础学习运算符-赋值运算符
- C语言基础学习运算符-关系运算符
- C语言基础之运算
- C语言基础学习运算符-逻辑运算符
- 懒汉式单例模式的线程安全问题
- SQL Server 获取每组中的前N个
- 【算法与设计分析基础】大整数乘法int[]版+分治法求幂
- C语言文件的输入输出知识点
- myeclipse整合maven
- C++基础---运算符
- 社説 20150711 安保集中審議 厳しい事態にも備える法制に
- 防止DC电源反接的方法
- mysql数据类型整理
- LeetCode Invert Binary Tree
- 架构师学习之路2框架分析之jfinal2.0——2
- the reactor pattern and java nio
- 如何看待URL ????
- mfc多线程的挂起和运行问题