1. 程式人生 > >C++的陣列、結構體、指標三種複合型別知識點小總結

C++的陣列、結構體、指標三種複合型別知識點小總結

  1. 陣列結構體指標是C++的3種複合型別。
  2. 陣列可以在一個數據物件中儲存多個不同型別的值,通過使用索引或下標,可以訪問陣列中的各個元素。
  3. 結構體可以將多個不同型別的值儲存在同一個資料物件中,可以使用成員關係運算符(.)來訪問其中的成員。
  4. 使用結構體的第一步是建立結構體模板,它定義結構體儲存了那些成員。模板的名稱將成為新型別的識別符號,然後就可以宣告這種型別的結構體變數
  5. 共用體可以儲存一個值,但是這個值可以是不同的,成員指出了使用的模式。
  6. 指標是被設計用來儲存地址的變數。通常說,指標指向儲存的地址。指標宣告指出了指標指向的物件的型別。對指標使用解除引用運算子,將得到指標指向的的位置中的值。
  7. 字串是以空字元為結尾
    的一系列字元。字串可以用引號括起來的字串常量表示,其中隱式包含了結尾的空字元。可以將字串儲存在char陣列中,可以用被初始化為指向字串的char指標表示字串。函式strlen()返回字串的長度,其中不包含空字元。函式strcpy( )將字串從一個位置複製到另一個位置。在使用這些函式時,應包含對應的標頭檔案cstringstring.h
  8. 標頭檔案string支援的C++string類提供了另一種對使用者友好的字串處理方法。具體地說,string物件將根據要儲存的字串自動調整其大小,使用者可以使用賦值運算子來複制字串。
  9. new運算子允許在程式執行時為資料物件請求記憶體。該運算子返回獲得記憶體的地址,可以將這個地址賦給一個指標,程式將只能使用該指標訪問這塊記憶體,如果資料物件時簡單變數,則可以解除引用運算子(*)來獲得其值;如果陣列物件時陣列,則可以像使用陣列名那樣使用指標訪問元素;如果資料物件時結構體,則可以用指標解除引用運算子(->)來訪問成員。
  10. 指標和陣列是緊密相關的。陣列名的作用和指標相同,如果ar是陣列名,則表示式ar[i]被解釋為*(ar+i),其中陣列名被解釋為陣列第一個元素的地址。其實也可以反過來,使用陣列表示法,通過指標名來訪問new分配的陣列中的元素。
  11. 運算子new和delete允許顯式控制何時給陣列物件分配記憶體,何時將記憶體歸還給記憶體池。自動變數是在函式中宣告的變數,而靜態變數是在函式外部或者使用關鍵字static宣告的變數,這兩種變數都不太靈活。自動變數在程式執行其所屬的程式碼塊時產生(通常是函式定義),在離開該程式碼塊是終止。靜態變數在整個程式週期內都存在。
  12. C++98新增的標準模板庫(STL)提供了模板類vector
    ,它是動態陣列的替代品。
  13. C++11提供了模板類array,它是定長陣列的替代品。
  14. 防止vector或者array型別的陣列越界,可以使用成員函式at(),程式將在執行期間捕獲非法索引,程式也將預設中斷,但是這樣程式的執行時間會更長。
  15. vectorarray陣列可以直接賦值,而陣列則必須逐個元素賦值。