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

C++中的運(yùn)算符和表達(dá)式

 更新時間:2022年03月10日 10:37:32   作者:機(jī)器學(xué)習(xí)入坑者  
這篇文章主要介紹了C++中的運(yùn)算符和表達(dá)式,學(xué)習(xí)使用表達(dá)式,對數(shù)據(jù)類型進(jìn)行處理.詳細(xì)介紹內(nèi)容需要的小伙伴可以參考下面文章相關(guān)內(nèi)容

在編程語言中“表達(dá)式”可以近似于“公式”,也就是按照自己的預(yù)期進(jìn)行某種計(jì)算,表達(dá)式由運(yùn)算符合操作數(shù)等構(gòu)成。C++中包含單目(一元)運(yùn)算符、雙目(二元)運(yùn)算符和三目(三元)運(yùn)算符,相應(yīng)的構(gòu)成了多種表達(dá)式。運(yùn)算符具有優(yōu)先級和結(jié)合性,優(yōu)先級指先后計(jì)算次序,結(jié)合性指同級運(yùn)算符時按照自左向右還是自右向左進(jìn)行計(jì)算。

(1)算術(shù)表達(dá)式

算術(shù)表達(dá)式由算術(shù)運(yùn)算符、操作數(shù)和括號構(gòu)成,基本運(yùn)算符包含:加+、減-、乘*、除\、取余%,只有“加、減”在做“正、負(fù)”符號時是一元運(yùn)算符,其余情況都是二元運(yùn)算符。C++擁有自加++和自減--兩個一元運(yùn)算符(python應(yīng)該沒有自加和自減,因?yàn)閜ython中數(shù)值是不可變類型,改變值會申請新的內(nèi)存),當(dāng)表達(dá)式中存在自加或者自減運(yùn)算時,一定要注意自加和自減是在操作數(shù)之前還是操作數(shù)之后,在操作數(shù)之前表示先自加再計(jì)算整個表達(dá)式,在操作數(shù)之后表示先計(jì)算整個表達(dá)式再自加,

比如下面的代碼:

int age_1 = 22;
int age_2 = 22;
int new_age_1;
int new_age_2;
new_age_1 = age_1++;
new_age_2 = ++age_2;

第5行計(jì)算new_age_1時,先計(jì)算完整個表達(dá)式,再進(jìn)行age_1的自加,所以new_age_1

等于22;第6行計(jì)算new_age_2時,先對age_2進(jìn)行自加,再進(jìn)行表達(dá)式計(jì)算,所以new_age_2等于23。自己在寫代碼時最好不要給自己挖坑,少使用過于復(fù)雜的表達(dá)式。

(2)賦值運(yùn)算符

賦值運(yùn)算符“=”是雙目運(yùn)算符,結(jié)合性是自右向左,允許連續(xù)賦值:

int x, y, z;
x = y = z = 1;

此外,C++還有+=、*=、/=等等運(yùn)算符,結(jié)合性都是自右向左。

(3)逗號運(yùn)算符

逗號運(yùn)算符可以分隔兩個表達(dá)式,先計(jì)算左邊表達(dá)式再計(jì)算右邊的表達(dá)式,但是由于逗號運(yùn)算符的優(yōu)先級低于賦值運(yùn)算符,所以采用逗號運(yùn)算符進(jìn)行賦值時必須把逗號表達(dá)式括起來,

下面兩行代碼得到的x值是不同的:

x = (2, 3);
x = 2, 3;

第一行x等于3,第二行x等于2,因?yàn)槎禾栠\(yùn)算符的優(yōu)先級低于賦值運(yùn)算符,自己在使用中必須小心。

(4)關(guān)系運(yùn)算符

關(guān)系運(yùn)算符是邏輯表達(dá)式的基礎(chǔ),C++包含的關(guān)系運(yùn)算符分兩個優(yōu)先級,較高的優(yōu)先級為:大于、小于、大于等于和小于等于四種,分別用<、<=、>、>=來表示;較低的優(yōu)先級為:等于、不等于,分別用==、!=表示。邏輯表達(dá)式返回的值為布爾類型,判斷為真返回True(0),判斷為假返回False(1),

如下:

int x = 2;
int y = 3;
bool result;
result = (x >= y);

C++還擁有三個邏輯運(yùn)算符:與、或、非,分別用||、&&、!三個符號表示。

(5)三元表達(dá)式

據(jù)自己目前所知,C++唯一的三元運(yùn)算符是條件運(yùn)算符,其語法如下:

條件判斷? 表達(dá)式1:表達(dá)式2

當(dāng)判斷條件成立時,執(zhí)行表達(dá)式1;當(dāng)判斷條件不成立時,執(zhí)行表達(dá)式2,

代碼如下:

int x = 2;
int y = 3;
int result;
result = (x>y? 10: 1000);

由于x>y不成立,所以執(zhí)行表達(dá)式2,也就是result被賦值為1000。

(6)sizeof函數(shù)

書中稱sizeof為單獨(dú)的運(yùn)算符,為了便于理解這里把其視為函數(shù)。sizeof可以求取對象的占用的字節(jié)數(shù),下面的例子計(jì)算了int類型占用的字節(jié)數(shù):

int result=1000;
cout << sizeof(result) <<endl;

輸出為4,表示int占用4個字節(jié),這和理論上是一致的。

(7)數(shù)據(jù)類型轉(zhuǎn)換

數(shù)據(jù)類型轉(zhuǎn)換是編程語言面臨的共同問題,對于表達(dá)式中存在多種數(shù)據(jù)類型的情況必須采用有效的處理策略。C++數(shù)據(jù)類型轉(zhuǎn)換包含顯式轉(zhuǎn)換和隱式轉(zhuǎn)換兩種,下面分別進(jìn)行介紹。

(7.1)顯式轉(zhuǎn)換

如果自己清晰的知道表達(dá)式中各個對象是什么類型,并且清晰的知道想要將對象變?yōu)楹畏N新的類型,那么可以使用:類型說明符(表達(dá)式)進(jìn)行顯式的類型轉(zhuǎn)換,

比如將float類型的x轉(zhuǎn)換為int類型的y:

float x = 6.66;
int y = int(x); ??

上述代碼運(yùn)行后y的值為6,僅僅取x的整數(shù)部分。顯式類型轉(zhuǎn)換時,如果自己選擇的類型說明符的精度較低,比如上述代碼中x為高精度,但是類型說明符int為低精度,則數(shù)據(jù)類型轉(zhuǎn)換過程中造成了精度丟失。

(7.2)隱式轉(zhuǎn)換

如果表達(dá)式中有高精度和低精度兩種數(shù)據(jù)參與計(jì)算,會自動將低精度數(shù)據(jù)轉(zhuǎn)換為高精度數(shù)據(jù)進(jìn)行計(jì)算,這種隱式轉(zhuǎn)換是沒有精度丟失的安全轉(zhuǎn)換:

float x = 6.66;
int y = 2;
cout << x+y <<endl;

上述代碼中浮點(diǎn)x和整型y進(jìn)行加法時,按照浮點(diǎn)類型進(jìn)行計(jì)算輸出6.66。

另外,邏輯表達(dá)式中0和非0數(shù)據(jù)分別會被轉(zhuǎn)換為true和false,賦值表達(dá)式自動將等號右邊的類型轉(zhuǎn)換為等號左邊的類型。

(8)總結(jié)

C++的包含的運(yùn)算符和表達(dá)式總體來說和python差不多,類型轉(zhuǎn)換的規(guī)則也很符合直觀的理解。位運(yùn)算符部分暫時沒進(jìn)行記錄是因?yàn)槠洳⒉怀S?,等用到的時候再學(xué)習(xí)。

參考:

  • 鄭莉《C++語言程序設(shè)計(jì)》

到此這篇關(guān)于C++中的運(yùn)算符和表達(dá)式的文章就介紹到這了,更多相關(guān)C++運(yùn)算符和表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實(shí)現(xiàn)學(xué)籍信息管理系統(tǒng)

    C語言實(shí)現(xiàn)學(xué)籍信息管理系統(tǒng)

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

    C++實(shí)現(xiàn)簡單的學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單的學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++使用WideCharToMultiByte函數(shù)生成UTF-8編碼文件的方法

    C++使用WideCharToMultiByte函數(shù)生成UTF-8編碼文件的方法

    用來映射Unicode字符串的WideCharToMultiByte函數(shù)經(jīng)常被用來進(jìn)行UTF-8編碼的轉(zhuǎn)換,以下我們將看到C++使用WideCharToMultiByte函數(shù)生成UTF-8編碼文件的方法,首先先來對WideCharToMultiByte作一個詳細(xì)的了解:
    2016-06-06
  • 解決C++中重定義的方法總結(jié)

    解決C++中重定義的方法總結(jié)

    本篇文章是對C++中重定義的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c++實(shí)現(xiàn)掃雷小游戲代碼分享

    c++實(shí)現(xiàn)掃雷小游戲代碼分享

    這篇文章主要介紹了c++實(shí)現(xiàn)掃雷小游戲并附上代碼分享,代碼不能夠?qū)崿F(xiàn)當(dāng)所查坐標(biāo)周圍雷的數(shù)量為0時,直接展開周圍坐標(biāo),但有一點(diǎn)的知識性參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • c/c++單例模式類的混合編譯案例詳解

    c/c++單例模式類的混合編譯案例詳解

    ? 由于c語言中沒有類的概念,因此對于有類的cpp文件與c文件混合編譯時,提供一個中間層提供類的操作接口,在c文件中調(diào)用接口實(shí)現(xiàn)間接操作類對象,這篇文章主要介紹了c/c++單例模式類的混合編譯的相關(guān)資料
    2022-10-10
  • C語言中進(jìn)程信號集的相關(guān)操作函數(shù)詳解

    C語言中進(jìn)程信號集的相關(guān)操作函數(shù)詳解

    這篇文章主要介紹了C語言中進(jìn)程信號集的相關(guān)操作函數(shù)詳解,包括sigismember函數(shù)和sigfillset函數(shù)以及sigemptyset函數(shù)的用法,需要的朋友可以參考下
    2015-09-09
  • C++string底層框架模擬實(shí)現(xiàn)代碼

    C++string底層框架模擬實(shí)現(xiàn)代碼

    本節(jié)文章主要說明淺拷貝和深拷貝的優(yōu)缺點(diǎn),以及仿寫string類的邏輯并分析實(shí)現(xiàn)過程,對C++string底層框架模擬實(shí)現(xiàn)代碼感興趣的朋友一起看看吧
    2021-11-11
  • C++ cin輸入的多種方法詳解

    C++ cin輸入的多種方法詳解

    cin是C++編程語言中的標(biāo)準(zhǔn)輸入流對象,即stream類的對象。cin主要用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),這里的標(biāo)準(zhǔn)輸入,指的是終端的鍵盤。接下來通過本文給大家分享C++ cin輸入的幾種方式,一起看看吧
    2021-09-09
  • C語言實(shí)現(xiàn)定時器控制LED燈閃爍

    C語言實(shí)現(xiàn)定時器控制LED燈閃爍

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)定時器控制LED燈閃爍,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評論

长宁县| 阜新市| 桐乡市| 青冈县| 左云县| 宾阳县| 玛曲县| 扎鲁特旗| 尖扎县| 盐津县| 长宁区| 宜君县| 泰和县| 岳阳市| 新田县| 息烽县| 乐昌市| 淳化县| 东宁县| 马龙县| 资中县| 昭觉县| 格尔木市| 定西市| 苏尼特右旗| 车致| 南漳县| 禹州市| 社旗县| 绥宁县| 子洲县| 石城县| 平潭县| 新乡市| 盱眙县| 建瓯市| 阿瓦提县| 汕头市| 碌曲县| 翁源县| 沙河市|