C++语言基础--02_运算符

2021-05-06 04:29

阅读:502

标签:number   opera   自身   int   ring   算术   hellip   算术运算   逻辑运算   

运算符

一 算术运算符

加减乘除求余数 + - * / %

    int a = 2, b = 4;
?
int c = a + b;
cout "c = " c endl; // 6
?
int d = a - b;
cout "d = " d endl; // -2
?
int e = a * b;
cout "e = " e endl; // 8
?
int f = 5 / 2;
cout "f = " f endl; // 0
// 0:int是整型 整数运算 结果还是整数,小数部分直接忽略
?
int g = b / a;
cout "g = " g endl; // 2
?
float f0 = 2, f1 = 4;
float ff = f0 / f1;
cout "ff = " ff endl; // 0.5
?
int num = 5 % 2; // 求5除以2的余数 %:求余 取模
cout "num = " num endl;
?
int n = 5;
float m = 2.0;
float number = n / m;
cout "number = " number endl; // 2.5
// 当参与运算的数据存在小数时,结果是小数
?
// % 两边都必须是整数
?
// 总结:运算结果以参与运算的数据中精度高的为准

二 关系运算符

大于 >

小于

等于等于 ==

大于等于 >=

小于等于

不等于 !=

    bool b = 3 > 7;
cout "b = " b endl;
?
bool b = 3 != 3;
cout "b = " b endl;
运算规则:先比较 然后 成立为真 不成立为假
注意:运算顺序为从左至右

三 逻辑运算符

运算完成之后会给出一个bool值

&& 前后两者都为真,表达式为真 否则为假

    bool b = (2 > 3) && (3 4);
cout "b = " b endl; // 0
?
bool b = (2 3) && (3 4);
cout "b = " b endl; // 1

|| 前者或后者为真,表达式为真 否则为假

    bool b = (2 > 3) || (3 4);
cout "b = " b endl; // 1
?
bool b = (2 3) || (3 4);
cout "b = " b endl; // 1
?
bool b = (2 > 3) || (3 > 4);
cout "b = " b endl; // 0

反转真假

    bool b = !(2 > 3);
cout "b = " b endl; // 1
注意:运算顺序为从左至右
1 对于&&运算符,由于需要前后都为真整个表达式才为真,所以,当前面为假时,确定整个表达式为假,所以不会继续运算后面的表达式。
2 对于||运算符,由于只要前后有一个为真整个表达式就为真,所以,当前面为真时,确定整个表达式为真,所以不会继续运算后面的表达式。
eg1:
int a = 1, b = 2;
bool bo = (a = a + b) && (b = a + b);
cout "a = " a endl; // 3
cout "b = " b endl; // 5
cout "bo = " bo endl; // 1
?
eg2:
int a = 1, b = 2;
bool bo = (a = a + b) || (b = a + b);
cout "a = " a endl; // 3
cout "b = " b endl; // 2
cout "bo = " bo endl; // 1
?
// 需要特别注意是否会继续向后运算

四 赋值运算符(双目运算符)

赋值 =

可以和算术运算符组合使用(复合赋值运算符)

+= -= *= /= %=

    int a = 1, b = 2;
a -= 1; // 等价于 a = a - 1;
cout "a = " a endl; // 0
a += 2; // 等价于 a = a + 2;
cout "a = " a endl; // 2
a *= b; // 等价于 a = a * b;
cout "a = " a endl; // 4
a /= b; // 等价于 a = a / b;
cout "a = " a endl; // 2
a += 1; // 等价于 a = a + 1; 3
a %= 2; // 等价于 a = a % 2;
cout "a = " a endl; // 1

五 自增自减运算符(单目运算符)

由于自身参与运算并且最后会改变自身的值,所以必须是变量。

++:自身加一 --:自身减一

1 自增 ++

    int a = 1;
a++; // 等价于 a = a + 1;
cout "a = " a endl; // 2
++a; // 等价于 a = a + 1;
cout "a = " a endl; // 3
?
?
int c0 = 0;
bool b0 = c0++; // 后置 先用c0给b0赋值 再c0++
cout "c0 = " c0 endl; // 1
cout "b0 = " b0 endl; // 0
?
int c1 = 0;
bool b1 = ++c1; // 前置 先c1++ 再用c0给b0赋值
cout "c1 = " c1 endl; // 1
cout "b1 = " b1 endl; // 1

// 后置:先用再加 前置:先加再用

2 自减 --

同上

六 条件运算符(三目运算符)

	//(表达式1) ? (表达式2) : (表达式3);
	//规则:先执行表达式1 为真执行表达式2 为假执行表达式3

	int a = 1, b = 2, c = 3;
	(a > 0) ? (b++) : (c++);
	cout 

七 逗号运算符

逗号 ,

// 逗号运算符 ,
// 运算规则:从左至右依次运算 取最后一个表达式的值(表达式个数不受限制)

int a = 1, b = 2, c = 3;
int num = ((a++), (a = b + 1), c, (a + b + c));
cout 

八 括号

() []

()括号括起来的先算

九 其他运算符

箭头 ->

.

负号 -

取内容 *

取地址 &

求字节数 sizeof

 

十 位操作运算符

按位非 ~

左移

右移 >>

按位与 &

按位异或 ^

按位或 |

优先级

括号优先级最高 ()

算术运算符优先级高于关系运算符

赋值在逗号前面 = += -= ……

逗号优先级最低 ,

优先级 操作符      
1 () [] -> .
  ::      
  ! ~ ++ --
2 - (负号) * (取内容)    
  & (取地址) sizeof    
3 ->* .*    
4 * (乘) / %  
5 + -    
6 >>    
7 > >=
8 == !=    
9 & (按位与)      
10 ^      
11 |      
12 &&      
13 ||      
14 ? :      
15 = += -= etc.
16 ,      

 

 

 

 

C++语言基础--02_运算符

标签:number   opera   自身   int   ring   算术   hellip   算术运算   逻辑运算   

原文地址:https://www.cnblogs.com/ZhenXin0101/p/13191316.html

上一篇:C/C++动态分配内存

下一篇:Java多线程


评论


亲,登录后才可以留言!