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

C++編程中逗號(hào)運(yùn)算符和條件運(yùn)算符的使用方法講解

 更新時(shí)間:2016年01月14日 15:17:18   投稿:goldensun  
這篇文章主要介紹了C++編程中逗號(hào)運(yùn)算符和條件運(yùn)算符的使用方法講解,需要的朋友可以參考下

逗號(hào)運(yùn)算符:,
允許對(duì)兩個(gè)語(yǔ)句進(jìn)行分組,其中有一個(gè)是預(yù)期的。

expression , expression

備注
逗號(hào)運(yùn)算符具有從左向右的關(guān)聯(lián)性。 由逗號(hào)分隔的兩個(gè)表達(dá)式將從左向右進(jìn)行計(jì)算。 始終計(jì)算左操作數(shù),并且在計(jì)算右操作數(shù)之前將完成所有副作用。
在某些上下文(如函數(shù)參數(shù)列表)中,逗號(hào)可用作分隔符。 不要將該逗號(hào)用作分隔符與將其用作運(yùn)算符的情況混淆;這兩種用法完全不同。
考慮表達(dá)式

e1 , e2

該表達(dá)式的類(lèi)型和值是 e2 的類(lèi)型和值;e1 的計(jì)算結(jié)果將被丟棄。 如果右操作數(shù)是左值,則結(jié)果為左值。
在通常將逗號(hào)用作分隔符的方案中(例如,在函數(shù)或聚合初始值設(shè)定項(xiàng)的實(shí)參中),逗號(hào)運(yùn)算符及其操作數(shù)必須包含在括號(hào)中。 例如:

func_one( x, y + 2, z );
func_two( (x--, y + 2), z );

在上面的對(duì) func_one 的函數(shù)調(diào)用中,會(huì)傳遞以逗號(hào)分隔的三個(gè)參數(shù):x、y + 2 和 z。 在對(duì) func_two 的函數(shù)調(diào)用中,圓括號(hào)強(qiáng)制編譯器將第一個(gè)逗號(hào)解釋為順序計(jì)算運(yùn)算符。 此函數(shù)調(diào)用將兩個(gè)參數(shù)傳遞給 func_two。 第一個(gè)參數(shù)是順序計(jì)算運(yùn)算 (x--, y + 2) 的結(jié)果,具有表達(dá)式 y + 2 的值和類(lèi)型;第二個(gè)參數(shù)為 z。
示例

 // cpp_comma_operator.cpp
#include <stdio.h>
int main () {
 int i = 10, b = 20, c= 30;
 i = b, c;
 printf("%i\n", i);

 i = (b, c);
 printf("%i\n", i);
}

20
30

條件運(yùn)算符:? :
語(yǔ)法

expression ? expression : expression

備注
條件運(yùn)算符 (? :) 是一個(gè)三元運(yùn)算符(采用三個(gè)操作數(shù))。條件運(yùn)算符按以下方式運(yùn)行:
第一個(gè)操作數(shù)隱式轉(zhuǎn)換為 bool。計(jì)算該操作數(shù),并在繼續(xù)前完成所有副作用。

  • 如果第一個(gè)操作數(shù)的計(jì)算結(jié)果為 true (1),則計(jì)算第二個(gè)操作數(shù)。
  • 如果第一個(gè)操作數(shù)的計(jì)算結(jié)果為 false (0),則計(jì)算第三個(gè)操作數(shù)。
  • 條件運(yùn)算符的結(jié)果是操作數(shù)(無(wú)論是第二個(gè)還是第三個(gè))的計(jì)算結(jié)果。只有最后兩個(gè)操作數(shù)之一在條件表達(dá)式中計(jì)算。
  • 條件表達(dá)式具有從右到左的關(guān)聯(lián)性。第一個(gè)操作數(shù)必須是整數(shù)或指針類(lèi)型。以下規(guī)則適用于第二個(gè)和第三個(gè)操作數(shù):
  • 如果兩個(gè)操作數(shù)是相同的類(lèi)型,則結(jié)果也是該類(lèi)型。
  • 如果兩個(gè)操作數(shù)都是算術(shù)或枚舉類(lèi)型,則執(zhí)行常用算術(shù)轉(zhuǎn)換(在算術(shù)轉(zhuǎn)換中有述)來(lái)將它們轉(zhuǎn)換為通用類(lèi)型。
  • 如果兩個(gè)操作數(shù)都是指針類(lèi)型,或者一個(gè)是指針類(lèi)型,另一個(gè)是計(jì)算結(jié)果為 0 的常量表達(dá)式,則執(zhí)行指針轉(zhuǎn)換來(lái)將它們轉(zhuǎn)換為通用類(lèi)型。
  • 如果兩個(gè)操作數(shù)都是引用類(lèi)型,則執(zhí)行引用轉(zhuǎn)換來(lái)將它們轉(zhuǎn)換為通用類(lèi)型。
  • 如果兩個(gè)操作數(shù)都是 void 類(lèi)型,則通用類(lèi)型是 void 類(lèi)型。
  • 如果兩個(gè)操作數(shù)是相同的用戶(hù)定義類(lèi)型,則通用類(lèi)型也是該類(lèi)型。
  • 如果操作數(shù)是不同的類(lèi)型,而且至少有一個(gè)操作數(shù)是用戶(hù)定義類(lèi)型,則使用語(yǔ)言規(guī)則來(lái)確定通用類(lèi)型。(請(qǐng)參閱下面的警告。)

前面列表中沒(méi)有的第二個(gè)和第三個(gè)操作數(shù)的任意組合都是非法的。結(jié)果的類(lèi)型是通用類(lèi)型,如果第二個(gè)和第三個(gè)操作數(shù)是同一類(lèi)型且都是左值,則結(jié)果為左值。

System_CAPS_warning警告
如果第二個(gè)和第三個(gè)操作數(shù)的類(lèi)型不相同,則會(huì)按 C++ 標(biāo)準(zhǔn)中的指定調(diào)用復(fù)雜類(lèi)型轉(zhuǎn)換規(guī)則。這些轉(zhuǎn)換可能會(huì)導(dǎo)致意外行為,包括構(gòu)造和析構(gòu)臨時(shí)對(duì)象。為此,我們強(qiáng)烈建議:(1) 避免將用戶(hù)定義的類(lèi)型用作帶條件運(yùn)算符的操作數(shù);(2) 如果確實(shí)要使用用戶(hù)定義的類(lèi)型,務(wù)必將每個(gè)操作數(shù)顯式轉(zhuǎn)換為通用類(lèi)型。

// expre_Expressions_with_the_Conditional_Operator.cpp
// compile with: /EHsc
// Demonstrate conditional operator
#include <iostream>
using namespace std;
int main() {
 int i = 1, j = 2;
 cout << ( i > j ? i : j ) << " is greater." << endl;
}

相關(guān)文章

  • C++11?nullptr實(shí)現(xiàn)初始化空指針

    C++11?nullptr實(shí)現(xiàn)初始化空指針

    避免產(chǎn)生“野指針”最有效的方法,就是在定義指針的同時(shí)完成初始化操作,本文主要介紹了C++11?nullptr初始化空指針,感興趣的可以了解一下
    2022-01-01
  • 詳解QML?調(diào)用?C++?中的內(nèi)容

    詳解QML?調(diào)用?C++?中的內(nèi)容

    這篇文章主要介紹了QML?怎么調(diào)用?C++?中的內(nèi)容,這里主要是總結(jié)一下,怎么在 QML 文件中引用 C ++ 文件里定義的內(nèi)容,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • c++11多種格式時(shí)間轉(zhuǎn)化為字符串的方法實(shí)現(xiàn)

    c++11多種格式時(shí)間轉(zhuǎn)化為字符串的方法實(shí)現(xiàn)

    本文主要介紹了c++11多種格式時(shí)間轉(zhuǎn)化為字符串的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++自定義封裝socket操作業(yè)務(wù)類(lèi)完整實(shí)例

    C++自定義封裝socket操作業(yè)務(wù)類(lèi)完整實(shí)例

    這篇文章主要介紹了C++自定義封裝socket操作業(yè)務(wù)類(lèi),結(jié)合完整實(shí)例形式分析了Linux環(huán)境下C++操作socket的封裝業(yè)務(wù)類(lèi),可實(shí)現(xiàn)基本的socket連接、參數(shù)設(shè)置、發(fā)送請(qǐng)求等基本功能,需要的朋友可以參考下
    2017-08-08
  • c++引用傳參和指針傳參的區(qū)別及說(shuō)明

    c++引用傳參和指針傳參的區(qū)別及說(shuō)明

    這篇文章主要介紹了c++引用傳參和指針傳參的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • C語(yǔ)言實(shí)現(xiàn)單鏈表的基本功能詳解

    C語(yǔ)言實(shí)現(xiàn)單鏈表的基本功能詳解

    鏈表是一個(gè)結(jié)構(gòu)體實(shí)現(xiàn)的一種線性表,它只能從前往后,不可以從后往前,在實(shí)現(xiàn)單鏈表的操作時(shí),需要用指針來(lái)操作。本文主要介紹了實(shí)現(xiàn)單鏈表的基本功能的代碼示例,具有一定價(jià)值,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-11-11
  • C++中for循環(huán)與while循環(huán)的區(qū)別總結(jié)

    C++中for循環(huán)與while循環(huán)的區(qū)別總結(jié)

    這篇文章主要給大家介紹了關(guān)于C++中for循環(huán)與while循環(huán)的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C++二維數(shù)組中的查找算法示例

    C++二維數(shù)組中的查找算法示例

    這篇文章主要介紹了C++二維數(shù)組中的查找算法,結(jié)合實(shí)例形式分析了C++二維數(shù)組進(jìn)行查找的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05
  • C++?結(jié)合?opencv讀取圖片與視頻的方法

    C++?結(jié)合?opencv讀取圖片與視頻的方法

    這篇文章主要介紹了C++?結(jié)合?opencv讀取圖片與視頻,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • C++實(shí)現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法

    C++實(shí)現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法

    這篇文章主要介紹了C++實(shí)現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法,是Windows應(yīng)用程序設(shè)計(jì)中非常實(shí)用的方法,需要的朋友可以參考下
    2014-10-10

最新評(píng)論

武平县| 布尔津县| 宁明县| 安乡县| 汉寿县| 开平市| 凉山| 颍上县| 海淀区| 崇礼县| 聂拉木县| 新津县| 利津县| 滁州市| 石河子市| 梧州市| 延庆县| 兰州市| 古蔺县| 庆云县| 巩留县| 长乐市| 于田县| 双城市| 灌阳县| 安西县| 舒城县| 大新县| 宝鸡市| 晋中市| 德惠市| 灌阳县| 额敏县| 公主岭市| 湘潭县| 禄丰县| 当涂县| 巴马| 绩溪县| 博爱县| 通州区|