欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中的運算符和表達式

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

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

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

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

比如下面的代碼:

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行計算new_age_1時,先計算完整個表達式,再進行age_1的自加,所以new_age_1

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

(2)賦值運算符

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

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

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

(3)逗號運算符

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

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

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

第一行x等于3,第二行x等于2,因為逗號運算符的優(yōu)先級低于賦值運算符,自己在使用中必須小心。

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

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

如下:

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

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

(5)三元表達式

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

條件判斷? 表達式1:表達式2

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

代碼如下:

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

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

(6)sizeof函數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

上述代碼中浮點x和整型y進行加法時,按照浮點類型進行計算輸出6.66。

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

(8)總結(jié)

C++的包含的運算符和表達式總體來說和python差不多,類型轉(zhuǎn)換的規(guī)則也很符合直觀的理解。位運算符部分暫時沒進行記錄是因為其并不常用,等用到的時候再學習。

參考:

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

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

相關(guān)文章

  • C語言全方位講解指針與地址和數(shù)組函數(shù)堆空間的關(guān)系

    C語言全方位講解指針與地址和數(shù)組函數(shù)堆空間的關(guān)系

    指針是C語言中一個非常重要的概念,也是C語言的特色之一。使用指針可以對復雜數(shù)據(jù)進行處理,能對計算機的內(nèi)存分配進行控制,在函數(shù)調(diào)用中使用指針還可以返回多個值
    2022-04-04
  • 使用C語言打印月歷

    使用C語言打印月歷

    這篇文章主要為大家詳細介紹了使用C語言打印月歷,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++11中l(wèi)ambda、std::function和std:bind詳解

    C++11中l(wèi)ambda、std::function和std:bind詳解

    大家都知道C++11中增加了許多的新特性,下面在這篇文中我們就來聊一下lambda表達式,閉包,std::function以及std::bind。文中介紹的很詳細,相信對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • C語言輕松實現(xiàn)掃雷小游戲

    C語言輕松實現(xiàn)掃雷小游戲

    掃雷是一款經(jīng)典的小游戲,這篇文章主要為大家詳細介紹了C語言輕松實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 解析Linux下C++編譯和鏈接

    解析Linux下C++編譯和鏈接

    編譯&鏈接對C&C++程序員既熟悉又陌生,熟悉在于每份代碼都要經(jīng)歷編譯&鏈接過程,陌生在于大部分人并不會刻意關(guān)注編譯&鏈接的原理。本文通過開發(fā)過程中碰到的四個典型問題來探索64位linux下C++編譯&鏈接的那些事。
    2021-05-05
  • OLEDB打開Excel文件的實現(xiàn)方法

    OLEDB打開Excel文件的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狾LEDB打開Excel文件的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言學習之關(guān)鍵字的示例詳解

    C語言學習之關(guān)鍵字的示例詳解

    關(guān)鍵字,這名字一聽,就很關(guān)鍵。而有些關(guān)鍵字,你可能不是很了解,更別談使用。所以,這篇文章將帶你見識常見的關(guān)鍵字,一起領(lǐng)略它們的風采吧
    2022-10-10
  • 深入理解atoi()與itoa()函數(shù)的用法

    深入理解atoi()與itoa()函數(shù)的用法

    本篇文章是對atoi()與itoa()函數(shù)的用法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)動態(tài)煙花效果

    C++實現(xiàn)動態(tài)煙花效果

    這篇文章主要介紹了利用C++實現(xiàn)的放煙花程序,用到了EGE圖形庫,文中的示例代碼講解詳細,對我們學習C++有一定幫助,需要的可以參考一下
    2022-01-01
  • c++11新增的便利算法實例分析

    c++11新增的便利算法實例分析

    這篇文章主要介紹了c++11新增的便利算法,主要有用于判斷、查找、數(shù)組、序列等的操作算法,非常具有實用價值,需要的朋友可以參考下
    2014-09-09

最新評論