最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/CPP運(yùn)算優(yōu)先級(jí)的坑及解決

 更新時(shí)間:2023年08月04日 16:06:34   作者:_不會(huì)dp不改名_  
這篇文章主要介紹了C/CPP運(yùn)算優(yōu)先級(jí)的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C/CPP運(yùn)算優(yōu)先級(jí)坑

1. 位運(yùn)算優(yōu)先級(jí)低于比較運(yùn)算符

做leetcode時(shí)遇到的,判斷一個(gè)數(shù)某一比特位是否為0。

if ( val & 2 == 0) {
	// do someting...
}

萬(wàn)萬(wàn)沒(méi)想到&運(yùn)算符的優(yōu)先級(jí)是低于==的,debug了好久,得加上括號(hào)。

1.1 驗(yàn)證

#include <iostream>
int main( int argc, char *argv[]){
    int val = 2;
    if ( val & 1 == 0) {
        std::cout << "without (): bit 1 is 0" << std::endl;
    }
    else {
        std::cout << "without (): bit 1 is 1" << std::endl;
    }
    if ( (val & 1) == 0) {
        std::cout << "with (): bit 1 is 0" << std::endl;
    }
    else {
        std::cout << "with (): bit 1 is 0" << std::endl;
    }
    return 0;
}

輸出結(jié)果為

without (): bit 1 is 1
with (): bit 1 is 0

2. 移位運(yùn)算符優(yōu)先級(jí)低于算術(shù)運(yùn)算符

這是在寫(xiě)二分的時(shí)候遇到的, l + (r-l) >> 1 的值永遠(yuǎn)為r >> 1

應(yīng)該寫(xiě)作l + (r - l >> 2)。

2.1 驗(yàn)證

#include <iostream>
int main( int argc, char *argv[]){
    int l = 2, r = 8;
    int mid = l + (r - l) >> 1;
    int mid2 = l + ( r - l >> 1);
    std::cout << "mid: " << mid << std::endl;
    std::cout << "mid2: " << mid2 << std::endl;
    return 0;
}

輸出結(jié)果為

mid: 4
mid2: 5

C語(yǔ)言運(yùn)算優(yōu)先級(jí)口訣

C語(yǔ)言常用運(yùn)算符的優(yōu)先級(jí)口訣是:“單算關(guān)邏條賦逗”;

如果加入位運(yùn)算符,完整口訣是:“單算移關(guān)與,異或邏條賦”。

  • “單”表示單目運(yùn)算符:邏輯非(!),按位取反(~),自增(++),自減(--),取地址(&),取值(*);
  • “算”表示算術(shù)運(yùn)算符:乘、除和求余(*,/,%)級(jí)別高于加減(+,-);
  • “移”表示按位左移(<<)和位右移(>>);
  • “關(guān)”表示關(guān)系運(yùn)算符:大小關(guān)系(>,>=,<,<=)級(jí)別高于相等不相等關(guān)系(==,!=);
  • “與”表示按位與(&);
  • “異”表示按位異或(^);
  • “或”表示按位或(|);
  • “邏”表示邏輯運(yùn)算符:邏輯與(&&)級(jí)別高于邏輯或(||);
  • “條”表示條件運(yùn)算符(? :);
  • “賦”表示賦值運(yùn)算符(=,+=,-=,*=,/=,%=,>>=,<<=,&=,^=, |=,!=);

另,逗號(hào)運(yùn)算符(,) 級(jí)別最低,口訣中沒(méi)有表述,需另加記憶..

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C/C++宏定義的可變參數(shù)詳細(xì)解析

    C/C++宏定義的可變參數(shù)詳細(xì)解析

    在1999年版本的ISO C 標(biāo)準(zhǔn)中,宏可以象函數(shù)一樣,定義時(shí)可以帶有可變參數(shù)。宏的語(yǔ)法和函數(shù)的語(yǔ)法類似
    2013-09-09
  • C++強(qiáng)制類型轉(zhuǎn)換詳細(xì)示例代碼

    C++強(qiáng)制類型轉(zhuǎn)換詳細(xì)示例代碼

    在C++中,強(qiáng)制類型轉(zhuǎn)換(Type Casting)是將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型的操作,這篇文章主要介紹了C++強(qiáng)制類型轉(zhuǎn)換的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • C語(yǔ)言中改變目錄的相關(guān)操作函數(shù)詳解

    C語(yǔ)言中改變目錄的相關(guān)操作函數(shù)詳解

    這篇文章主要介紹了C語(yǔ)言中改變目錄的相關(guān)操作函數(shù)詳解,分別是fchdir()函數(shù)和rewinddir()函數(shù)的使用方法,需要的朋友可以參考下
    2015-09-09
  • C++多線程強(qiáng)制終止詳細(xì)

    C++多線程強(qiáng)制終止詳細(xì)

    這篇文章主要介紹了C++多線程強(qiáng)制終止, 實(shí)際上,沒(méi)有任何語(yǔ)言或操作系統(tǒng)可以為你提供異步突然終止線程的便利,且不會(huì)警告你不要使用它們。但是下面我們?cè)賮?lái)簡(jiǎn)單看看相關(guān)內(nèi)容吧
    2021-09-09
  • 用代碼和UML圖化解設(shè)計(jì)模式之橋接模式的深入分析

    用代碼和UML圖化解設(shè)計(jì)模式之橋接模式的深入分析

    本篇文章是對(duì)橋接模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C/C++中使用局部/全局變量初始值或默認(rèn)值問(wèn)題

    C/C++中使用局部/全局變量初始值或默認(rèn)值問(wèn)題

    這篇文章主要介紹了C/C++中使用局部/全局變量初始值或默認(rèn)值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • C++指向類成員的指針詳解

    C++指向類成員的指針詳解

    指向類成員的指針總的來(lái)講可以分為兩大類四小類(指向數(shù)據(jù)成員還是成員函數(shù),指向普通成員還是靜態(tài)成員),希望本片文章能給你帶來(lái)幫助
    2021-09-09
  • C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理的深入了解

    C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理的深入了解

    這篇文章主要為大家詳細(xì)介紹了語(yǔ)言C的動(dòng)態(tài)內(nèi)存管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C語(yǔ)言中.與->的區(qū)別詳細(xì)解析

    C語(yǔ)言中.與->的區(qū)別詳細(xì)解析

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中.與->區(qū)別的相關(guān)資料,這雖然是個(gè)小問(wèn)題,但有時(shí)候很容易讓人迷惑,因?yàn)橛械臅r(shí)候用混淆了,程序編譯不通過(guò),需要的朋友可以參考下
    2023-06-06
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單職工信息管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單職工信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單職工信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論

泾源县| 中山市| 平安县| 保亭| 白山市| 邓州市| 民和| 林州市| 吴桥县| 白沙| 中西区| 罗定市| 金溪县| 资中县| 沙河市| 丹棱县| 腾冲县| 义马市| 贵定县| 奇台县| 祁门县| 福鼎市| 汤原县| 临颍县| 合山市| 耿马| 昭苏县| 故城县| 伊金霍洛旗| 长汀县| 平江县| 阜新| 基隆市| 临猗县| 文成县| 陈巴尔虎旗| 余干县| 泰兴市| 尉犁县| 沙河市| 鹤峰县|