欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++ —— C++运算符与表达式

程序员文章站 2022-10-31 18:23:19
1、关系运算符及其优先级 在c++语言中有6种关系运算符:<,<=,>,>=,==,!= 在六个关系运算符中,<,<=,>,>=的优先级相同,==和!...

1、关系运算符及其优先级

在c++语言中有6种关系运算符:<,<=,>,>=,==,!=

在六个关系运算符中,<,<=,>,>=的优先级相同,==和!=的优先级相同,<,<=,>,>=的优先级高于==和!=的优先级。

关系运算符是双目运算符,运算时从左向右结合。

关系运算符优先级低于算术运算符,高于赋值运算符

例如: c > a - b 等价于 c > (a - b)

c == a > b 等价于 c == (a > b)

c = b <= a 等价于 c =(b <= a)

 

2、关系表达式

关系表达式是用关系运算符将两个表达式连接起来进行关系运算的式子。

关系表达式的一般形式为:

<表达式><关系运算符><表达式>

例如:

int a = 3,b = 2,c = 1,d,f;
cout << (a > b) << endl;
cout << ((a > b) == c) << endl;
cout << (b + c < a) << endl;                          
cout << (d = a > b) << endl;    
cout <<(f = a > b > c) << endl;        
cout <<('a' > 80) << enld;

 

3、条件运算符(三目运算符)

条件运算符是c++中唯一的一个三目运算符,它由两个符号“?”和“:”组成。

条件表达式的一般形式为:

<表达式1>? <表达式2>:<表达式3>

注意:

条件运算符的优先级低于算术运算符和关系运算符

条件运算符也可以嵌套,而且结合方向是从右向左的。例如:

a >b ? a : c > d ? c : d 等价于:a > b ? a : (c > d ? c : d )

条件表达式相当于一条简单的if—else语句。例如:

 

cout << (a > b ? a : b) << endl;   等价于   
if (a > b)
     cout << a << endl;
else
     cout << b << endl;

 

4、逻辑运算符及其优先级

c++语言中提供了三种逻辑运算符:

! 非运算

&& 与运算

|| 或运算

逻辑运算符的优先级及其结合方向

逻辑非“!”: 优先级2, 右结合性,单目运算符。

逻辑与“&& ”:优先级11,左结合性,双目运算符。

逻辑或“|| ”: 优先级12,左结合性,双目运算符。

1为真,0为假;

&&:两个为真才为真;如果第一个为假,后面那个不执行【短路现象】;

||:一个为真就为真;如果第一个为真,后面那个不执行【短路现象】;

 

【!,++,--,-】> 【算术运算符】> 【关系运算符】> 【&&,|| 】> 【条件运算符】> 【赋值运算符】

a>b&& c>d 等价于 (a>b) && (c>d)

!b==c|| d

a+b>c && x+yc) && ((x+y)

 

5、逻辑表达式

用逻辑运算符将表达式连接起来的式子就是逻辑表达式。

逻辑表达式的一般形式为:

<表达式><逻辑运算符><表达式>

 

int a = 1,b = 2;  //逻辑计算时a,b非0为真
cout << !a << endl;                            
cout << (a && b) << endl;                 
cout << (a || b) << endl;                     
cout << (!a || b) << endl;                           
cout << (4 && 0 || 2) << endl;                  
cout << ('a' &&'b') << endl;                     
cout << (5 > 3 && 2&& 8 < 4 - !0) << endl;