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

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

 

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)|| (d<a)

a+b>c && x+y<z                          等价于         ((a+b)>c) && ((x+y)<z)

 

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;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值