首頁 >後端開發 >C#.Net教程 >C++ 布林類型和引用的用法詳解

C++ 布林類型和引用的用法詳解

php是最好的语言
php是最好的语言原創
2018-08-06 09:17:214057瀏覽

1、布林型別

C 中的布林型別

  • C 在C語言的基本型別系統之上增加了bool

  • C 中的bool可取的值只有truefalse

##理論上

bool之佔用一個位元組

#注意:

true代表真值,編譯器內部用1來表示false代表非真值,編譯器內部用0來表示

C語言中:用整型值來取代bool型別,常用0:flase, 1:trueC 做了型別增強,增加了一個非常嚴謹的bool

類型,
truefalse
作為關鍵字存在。

在C 的布林類型中,
bool

類型只有

true
  • false

    兩個值,C 編譯器會將非0值轉換為true, 0值轉換為

    false
  • bool b = 0;
    printf("b = %d\n", b);
    b++;
    printf("b = %d\n", b);
    b = b - 3;
    printf("b = %d\n", b);
    // bool类型是否支持数学运算?

    其實在C 語言中,布林類型的內部實作是用一個位元組的整數來實現的,bool類型支援數學運算,編譯器會在內部進行調整,非0為true,0 為false

  • 程式碼試驗:
  • #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        bool b = false;
        int a = b;
        
        printf("sizeof(b) = %d\n", sizeof(b));
        // sizeof(b) = 1, bool类型占一个字节
        printf("b = %d, a = %d\n", b, a);    0
        // b = 0, a = 0
        
        b = 3;    // b = 1
        a = b;  // a = 1
        
        printf("b = %d, a = %d\n", b, a);
        
        b = -5;    // b = 1
        a = b;  // a = 1
        
        printf("b = %d, a = %d\n", b, a);
        
        a = 10; // a = 10
        b = a;  // b = 1
        
        printf("a = %d, b = %d\n", a, b);
        
        a = 0;    // a = 0
        b = a;  // b = 0
        
        printf("a = %d, b = %d\n", a, b);
        
        return 0;
    }

    #布林類型是C 中的基本資料型別

  • ##可以定義
  • bool

    類型的全域變數

    可以定義

    bool
  • 類型的常數

可以定義

bool

類型的指標

可以定義

bool
    類型的陣列
  • ......

    • #2、三目運算子

    • C 中對三目運算子進行了升級
  • #考慮下列程式碼是否正確,分別在C語言和C環境中編譯運行試驗

    int a = 1;
    int b =2;
    (a < b ? a : b) = 3;
    printf("a = %d, b = %d\n", a, b);
    // 在C语言中报错
    // 在C++中,结果a = 3

  • 三目運算子
    • #C語言中的三目運算子傳回的是變數值

不能作為左值使用

C 中的三目運算子可以直接傳回變數本身

既可以當作右值使用,又可以當左值使用

#注意:

三目運算子可能傳回的值中如果有一個是常數值,則不能作為左值使用


三目運算子只有在所有的可能返回都是變數的時候才能作為左值使用,一個常數一個變數就不能作為左值使用C++ 布林類型和引用的用法詳解

C 對三目運算子進行了這樣的升級,意義何在?
三目運算子所有的可能回傳都是變數的時候,

回傳的就是變數本身

,由此引出了新概念:引用
    ##3、引用
  • 3.1 變數名

  • 變數是一段實際連續儲存空間的別名,程式中透過變數來申請並命名儲存空間,透過變數的名字可以使用儲存空間。
    • 問題:一段連續的儲存空間只能有一個別名嗎?

    • 3.2 引用

      C 中的引用

    ##在C 中增加了引用的概念
int a = 4;
int& b = a;     // b作为a的别名
b = 5;        // 操作b就是操作a

引用可以看作定義變數的別名
  • 引用的語法:
  • Type& name = var;
    • 注意:
    • 普通引用在定義時必須用同類型的變數進行初始化。

      C 對三目運算子做了些啥?
int a = 1;
int b = 2;
(a 

當三目運算子的可能回傳都是變數時,傳回的是

變數引用

##當三目運算子的可能回傳中有常數時,回傳的是

4、小結

bool

類型是C 新增加的基礎類型

bool

類型的值只能是

true

false

C 中的三目運算子可作為左值使用C 中的引用可以看作變數的別名來使用

###三目運算子的可能回傳都是變數時,回傳的是引用#########相關文章:#########php boolean(布林)類型的用法範例###########PHP布爾型資料型別 false true 用法介紹######

以上是C++ 布林類型和引用的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn