&&和||的優(yōu)先級(jí)誰高 ==和&&誰的優(yōu)先級(jí)高
&& (邏輯與) 優(yōu)先級(jí)高于||(邏輯或)
1、return a && b || c
根據(jù)a來判斷返回值,a是false則肯定返回c;如果b , c都是true,那么就可以根據(jù)a來決定b還是c,如果a是false則返回c,如果a是true則返回b。
2、return a || b && c
根據(jù)優(yōu)先級(jí)相當(dāng)于先算b && c ,然后和a相或;如果a是true,則返回a,不論是b或c,如果a是false,則如果b是false,返回b,如果b是true,返回c。
運(yùn)算符優(yōu)先級(jí)的記法
C語言把除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運(yùn)算符處理,可見其范圍的寬(如:將賦值符“=”作為賦值運(yùn)算符、方括號(hào)作為下標(biāo)運(yùn)算符)。
優(yōu)先級(jí)與求值順序無關(guān)。如a+b && b*c,雖然*優(yōu)先級(jí)最高,但這個(gè)表達(dá)式求值順序是從左到右。優(yōu)先級(jí)從上到下依次遞減,最上面具有最高的優(yōu)先級(jí),逗號(hào)操作符具有最低的優(yōu)先級(jí)。
相同優(yōu)先級(jí)中,按結(jié)合性進(jìn)行結(jié)合。大多數(shù)運(yùn)算符結(jié)合性是從左到右,只有三個(gè)優(yōu)先級(jí)是從右至左結(jié)合的,它們是單目運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符。
基本的優(yōu)先級(jí)需要記住:指針最優(yōu),單目運(yùn)算優(yōu)于雙目運(yùn)算。如正負(fù)號(hào)。先算術(shù)運(yùn)算,后移位運(yùn)算,最后位運(yùn)算。邏輯運(yùn)算最后結(jié)合。
以上內(nèi)容參考 百度百科--運(yùn)算符優(yōu)先級(jí)
&&的優(yōu)先級(jí)要高與||。
&&有點(diǎn)類似于*,||類似于+。
邏輯運(yùn)算符里!的優(yōu)先級(jí)最高。
下面有個(gè)完整的C++的優(yōu)先級(jí)及結(jié)合律的鏈接。
優(yōu)先級(jí)和結(jié)合性只是告訴編譯器要在哪里補(bǔ)上括號(hào),也就是把表達(dá)式換成以下形式
k = (((a+1)>0) || (((++a)<0) && (!((b--)<=0))))
但是對(duì)于這里的(a+1)和(++a)這樣都是最小的表達(dá)式,應(yīng)該先算哪一個(gè),除了特殊情況之外,標(biāo)準(zhǔn)允許編譯器自行處理。
這里就有一種特殊情況:如果表達(dá)式中含有||,總是先算 || 左邊的子表達(dá)式,這里是((a+1)>0)永遠(yuǎn)先于(((++a)<0) && (!((b--)<=0)))計(jì)算(并且由于優(yōu)先級(jí),先計(jì)算a+1,再與0比較,而不是先將1與0比較,再和a相加),如果 || 左邊的子表達(dá)式可以確定 || 運(yùn)算后的值,就不再計(jì)算右邊的子表達(dá)式
&& 的優(yōu)先級(jí)大于 ||
&&的優(yōu)先級(jí)高于||
如果需要發(fā)所有優(yōu)先以及結(jié)合方向聯(lián)系俺
相關(guān)評(píng)說:
廣州市局部: ______ 邏輯與&&的優(yōu)先級(jí)高于邏輯或||
廣州市局部: ______ &&的優(yōu)先級(jí)大于|| 上面的式子應(yīng)該是先算后面部分,再比較前面的|| 這個(gè)和加減乘除運(yùn)算一下,乘除優(yōu)先級(jí)大于加減所以得先算
廣州市局部: ______ 沒錯(cuò) C、C++、java的文檔上&&的優(yōu)先級(jí)是高于||一級(jí) 9 & Bitwise and logical AND 10 ^ Bitwise and logical XOR (exclusive or) 11 | Bitwise and logical OR (inclusive or) 12 && Logical conditional-AND 13 || Logical conditional-OR ================= 所以例子中應(yīng)該得true和true ========== 一般不確定時(shí),用上括號(hào),避免歧義
廣州市局部: ______ 雖然||比&&優(yōu)先級(jí)高,但是n=...這條語句的作用是1和后面的結(jié)果相或,1代表真,所以||后面的值不需要再計(jì)算了,因此ijk取原來的值,故得此結(jié)果!
廣州市局部: ______ ! 算術(shù)運(yùn)算符 關(guān)系運(yùn)算符(“==”,“!==” 低于 “<,<=,>,>=") && ‖ 條件運(yùn)算符 賦值運(yùn)算符
廣州市局部: ______ *有兩種表示 1個(gè)是指針運(yùn)算 1個(gè)是乘 當(dāng)*代表指針運(yùn)算的時(shí)候 *和++的優(yōu)先級(jí)是相同的,只不過它們與變量的結(jié)合性是從右向左來算的 假如 有定義int *p; *p++; 那么先算++ 在算* 當(dāng)*代表乘的時(shí)候優(yōu)先級(jí)是低于++的
廣州市局部: ______ C中!的優(yōu)先級(jí)比&&高,沒有打括號(hào)就是先!a(處理最近的變量).宏中也有類似情況.
廣州市局部: ______ &&運(yùn)算符的優(yōu)先級(jí)高于?:運(yùn)算符.
廣州市局部: ______ &&比||的優(yōu)先級(jí)高 如:真 || 真 && 假 結(jié)果為真(真||真) && 假 結(jié)果為假 命令執(zhí)行順序:Command1 && command2 只有command1成功執(zhí)行,才執(zhí)行command2 Command || command2 Command1執(zhí)行失敗,才執(zhí)行command2(), {}執(zhí)行一組命令(command1; command2; …)