国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

06三目運算符在C和C++中的變化

2019-11-08 03:25:01
字體:
來源:轉載
供稿:網友

單目運算符是指:運算對象只有一個的運算符;如:取正(+)、取負(-)、取反(^)、或(|)、與(&)等等;

雙目運算符是運算對象有兩個的;如:加(+)減(-)乘(*)除(/)、自加(++)、自減(–)、邏輯與(||)、邏輯或(&&)、取余(%)、賦值(=)等;

三目運算符在c語言中我知道的就一個(?:),主要是:(表達式1?表達式2:表達式3)其用法是:當表達式1的值為真,執行表達式2,并以表達式2的值為此表達式的值;當表達式1值為假,就跳過表達式2,去執行表達式3,并以表達式3的值作為表達式的值;

首先需要明白什么是三目運算符,百度百科的定義如下:

對于條件表達式b?x:y,先計算條件b,然后進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a?b:c?d:e將按a?b:(c?d:e)執行。1 <表達式1>?<表達式2>:<表達式3>; “?”運算符的含義是: 先求表達式1的值, 如果為真, 則執行表達式2,并返回表達式2的結果 ; 如果表達式1的值為假, 則執行表達式3 ,并返回表達式3的結果。可以理解為條件 ? 結果1 : 結果2 里面的?號是格式要求。也可以理解為是不是條件成立,條件成立為結果1否則為結果2。

即C++中必須指明: * 輸入的參數是什么類型,int還是double? * 返回值為什么類型?int還是double,或者其他。 以上若干圖片的要點是: * 要想當左值,即出現在=號左邊,則必須為返回的是變量的地址,而不是變量的數值 * 三目運算符在C和C++中的“表現不一樣”,說到底還是兩個編譯器對三目運算符的操作不一樣。在C中,三目運算符返回的是變量的值,是一個數值,而在C++中, 三目運算符返回的是變量的本身==即內存首地址。也就是說,C++編譯器已經幫程序員提前做了取地址的工作。 具體的原理可參考最后一張圖片,如下: 注意黃圈圈處的改動。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 化隆| 顺义区| 明光市| 肃北| 九江市| 南安市| 中超| 苏尼特右旗| 香格里拉县| 资源县| 浦城县| 五台县| 深水埗区| 馆陶县| 屏东市| 航空| 海南省| 定西市| 陆河县| 赤水市| 大悟县| 巴楚县| 文安县| 万全县| 永兴县| 定日县| 游戏| 武汉市| 青铜峡市| 隆昌县| 河源市| 青岛市| 通许县| 阜宁县| 申扎县| 枣阳市| 邛崃市| 武鸣县| 宁河县| 开江县| 浦江县|