C++ —— C++运算符与表达式
C++ ——運(yùn)算符與表達(dá)式
?
1、關(guān)系運(yùn)算符及其優(yōu)先級(jí)
在C++語言中有6種關(guān)系運(yùn)算符:<,<=,>,>=,==,!=
在六個(gè)關(guān)系運(yùn)算符中,<,<=,>,>=的優(yōu)先級(jí)相同,==和!=的優(yōu)先級(jí)相同,<,<=,>,>=的優(yōu)先級(jí)高于==和!=的優(yōu)先級(jí)。
關(guān)系運(yùn)算符是雙目運(yùn)算符,運(yùn)算時(shí)從左向右結(jié)合。
關(guān)系運(yùn)算符優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符
例如: ? ? ? ? ? ? ? ?c > a - b ? ? ? ? ? ? ? ? ? 等價(jià)于? c > (a - b)
??????????????????????????? c == a > b??????????????? 等價(jià)于? c == (a > b)
??????????????????????????? c = b <= a??????????????? 等價(jià)于? c =(b <= a)
?
2、關(guān)系表達(dá)式
關(guān)系表達(dá)式是用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來進(jìn)行關(guān)系運(yùn)算的式子。
關(guān)系表達(dá)式的一般形式為:
???????????????????? <表達(dá)式><關(guān)系運(yùn)算符><表達(dá)式>
例如:
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、條件運(yùn)算符(三目運(yùn)算符)
條件運(yùn)算符是C++中唯一的一個(gè)三目運(yùn)算符,它由兩個(gè)符號(hào)“?”和“:”組成。
條件表達(dá)式的一般形式為:
???????????????????? <表達(dá)式1>? <表達(dá)式2>:<表達(dá)式3>
注意:
條件運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符和關(guān)系運(yùn)算符
條件運(yùn)算符也可以嵌套,而且結(jié)合方向是從右向左的。例如:
?????? ?a >b ? a : c > d ? c : d???? 等價(jià)于:a > b ? a : (c > d ? c : d )
條件表達(dá)式相當(dāng)于一條簡單的if—else語句。例如:
cout << (a > b ? a : b) << endl; 等價(jià)于 if (a > b)cout << a << endl; elsecout << b << endl;4、邏輯運(yùn)算符及其優(yōu)先級(jí)
C++語言中提供了三種邏輯運(yùn)算符:
????????????? !??????????????? 非運(yùn)算
????????????? && ? ? ? ? ? ?與運(yùn)算
???????????? || ? ? ? ? ? ? ? ?或運(yùn)算
邏輯運(yùn)算符的優(yōu)先級(jí)及其結(jié)合方向
邏輯非“!”:?? 優(yōu)先級(jí)2,? 右結(jié)合性,單目運(yùn)算符。
邏輯與“&& ”:優(yōu)先級(jí)11,左結(jié)合性,雙目運(yùn)算符。
邏輯或“|| ”:?? 優(yōu)先級(jí)12,左結(jié)合性,雙目運(yùn)算符。
1為真,0為假;
&&:兩個(gè)為真才為真;如果第一個(gè)為假,后面那個(gè)不執(zhí)行【短路現(xiàn)象】;
||:一個(gè)為真就為真;如果第一個(gè)為真,后面那個(gè)不執(zhí)行【短路現(xiàn)象】;
?
【!,++,--,-】> 【算術(shù)運(yùn)算符】> 【關(guān)系運(yùn)算符】> 【&&,|| 】> 【條件運(yùn)算符】> 【賦值運(yùn)算符】
a>b&& c>d??? ????? ?????????????等價(jià)于????????? (a>b) && (c>d)
!b==c|| d<a??? ?????? ?????????????等價(jià)于??? ? ((!b)==c)|| (d<a)
a+b>c && x+y<z? ? ???????????????????? ?等價(jià)于??? ???? ((a+b)>c) && ((x+y)<z)
?
5、邏輯表達(dá)式
?????? 用邏輯運(yùn)算符將表達(dá)式連接起來的式子就是邏輯表達(dá)式。
?????? 邏輯表達(dá)式的一般形式為:
???????????????????? <表達(dá)式><邏輯運(yùn)算符><表達(dá)式>??? ??????
int a = 1,b = 2; //邏輯計(jì)算時(shí)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;總結(jié)
以上是生活随笔為你收集整理的C++ —— C++运算符与表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取指定地址的值
- 下一篇: 盒马销量预测核心算法的技术演进