《C++ Primer》 ---- 關於變數 與 基本類型

來源:互聯網
上載者:User

標籤:

     類型是所有程式的基礎;

   C++ 定義了幾種基本類型: 字元型(char 和 wchar_t),整型(short int long bool),浮點型(float doubel) 並且提供自訂資料類型的機制  class  struct ;;

        標準庫正是採用了這些機制 才定義了許多更為複雜的資料類型如: 可變長字串 string  vector 等;

        對象 就是記憶體中具有類型的地區;具體點說:計算左值運算式就會產生對象 ;

 

--------  關於初始化

         初始化 分為   複製初始化  與  直接初始化

                   複製初始化文法使用等於(=) ,直接初始化則是把初始化式放在括弧中;;

                   int value(1024) ; // 直接初始化

                   int value = 1024 ; // 複製初始化

  C++ 中 “初始化 不是 賦值”  初始化是指建立變數 並且 給它 賦初始值, 而賦值是指擦除對象的當前值並用新的值代替;// 故 複製初始化實際上是兩步動作,直接初始化文法更加靈活效率更高;

 對於內建類型來說,賦值初始化 與 直接初始化、並沒有太大的差別

 但對於 類類型的對象來說,有些初始化僅能用直接初始化來完成; 定義如何進行初始化的成員函數稱為 建構函式, 一個類可以定義多個建構函式,每一個建構函式必須接受不同數目或者不同類型的參數;

-------  變數初始化的規則:

    1.內建類型變數的初始化 

         內建類型變數是否自動初始化取決與變數定義的位置;   

               在函數體外 定義的變數都 初始化為 0 

              在函數體內 定義的變數  不進行自動初始化;

   2.類類型變數的初始化

          使用顯式的初始化式

          使用預設的建構函式    

           不管變數在哪定義,預設函數都會被使用;有些類類型沒有預設建構函式,對於這些 類型來說,每個定義都必須提供顯式的初始化式; 沒有初始值是根本不可能定義這種類型的變數的; 

       

------ ---- 聲明 與 定義

        變數的定義用於為變數分配儲存空間, 還可以為變數指定初始值,但是變數有且僅有一個定義;(定義一般伴隨著  初始化式)

        聲明  用於向程式表明變數的類型 和 名字。定義也是一種聲明   (使用extern 但是並沒有 初始化式)  

                 extern int pi = 3.1415 ;    //  定義 

                 extern int pi ;                   // 聲明 但並沒有定義;

 

---------- const 限定符 ; 

                const 限定符 提供將一個變數轉化為常量的辦法;         // 用const 修飾 即表明 不可被修改;

    預設情況:

                 在全域範圍裡定義非const變數時,它在整個程式中都可以被訪問;

                 全域範圍中聲明的const變數 是定義該對象檔案的局部變數,此變數只存在這個檔案中,不能被其他檔案訪問  

                 // 預設情況下   類似與 c語言 static 的範圍;

       *非const 變數 預設是extern , 想要在其他檔案中訪問cosnt 常量  必須 顯式的指定為 extern ;

   

------------  引用 ; 

         引用就是對象另一個名字;引用主要是 用作函數的形式參數  在前面添加  &符號來定義;

     *** 引用 必須用與該引用同類型的對象初始化;      int val = 1025 ;      int &var = val ;     // OK 

        引用僅僅是名字的不同,但是指向同一個地址,同一個對象;   同資料類型的對象相互關聯;

 

 ----------- typedef 

             用來定義類型的同義字; typedef  int  qint32 ;  // 使用qint32 來代表int資料類型;

   

----------- 枚舉; enum

          為某些屬性定義一組可選擇的值;   

              預設:第一個枚舉成員 賦值為0,  後面的每一個枚舉都比前面的大1;

             enum stat { input , output , append   } ;   // 預設  input = 0 ; output = 1 ; append = 2  ;

             //  enum stat { input =2 , output , append } ;  // 其他成員將 隱式初始化 ; 

 -------- struct  與 calss 

      class  第一個訪問標識 前面 所有的成員 都是 private:

      struct   第一個標識前面  都有的成員都是 public ;  // 這是 class  與  struc 唯一差別;

                                  

        

   

            

 

    

《C++ Primer》 ---- 關於變數 與 基本類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.