陣列、結構和指標是c++的3中符合型別。陣列可以在乙個資料物件中儲存多個同種型別的值。通過使用索引或下標,可以訪問陣列中各個元素。
結構可以將多個不同型別的值儲存在同乙個資料物件中,可以使用成員關係運算子(.)來訪問其中的成員。使用結構的第一步是建立結構模板,它定義結構儲存了那些成員。模板的名稱將稱為新型別的識別符號,然後就可以宣告這種型別的結構變數。
共用體可以儲存乙個值,但是這個值可以是不同的型別,成員名指出了使用的模式。
指標是被設計用來儲存位址的變數。我們說,指標指向它儲存的位址。指標宣告指出了指標指向的物件的型別。對指標應用解除引用運算子,將得到指標指向的位置中的值。
字串是以空字元為結尾的一系列字元。字串可以用引號括起的字串常量表示,其中隱式包含了結尾的空字元。可以將字串儲存在char陣列中,可以用被初始化為指向字串的char指標表示字串。函式strlen()返回字串的長度,其中不包括空字元。函式strcpy()將字串從乙個位置複製到另乙個位置。在使用這些函式時,應當包含標頭檔案cstring和string.h。
標頭檔案string支援的c++ string類提供了另一種對使用者更友好的字串處理方法。具體地說,string物件將根據要儲存的字串自動調整其大小,使用者可以使用賦值運算子來複製字串。
new運算子允許在程式執行時為資料物件請求記憶體。該運算子返回獲得記憶體的位址,可以將這個位址賦給乙個指標,程式將只能使用該指標來訪問這塊記憶體。如果資料物件是簡單變數,則可以使用解除引用運算子(•)來獲得其值;如果資料物件是陣列,則可以像使用陣列名那樣使用指標來訪問元素:如果資料物件是結構,則可以用指標解除引用運算子(->)來訪問其成員。
指標和陣列緊密相關。如果ar是陣列名,則表示式ar[i]被解釋為*(ar + i ) , 其中陣列名被解釋為陣列第乙個元素的位址。這樣,陣列名的作用和指標相同。反過來,可以使用陣列表示法,通過指標名來訪問new分配的陣列中的元素。
運算子 new 和 delete 允許顯式控制何時給資料物件分配記憶體,何時將記憶體歸還給記憶體池。 自動變數是在函式中宣告的變數;而靜態變數是在函式外部或者使用關鍵字 static 宣告的變最,這兩種變最都不太靈活 。自動變數在程式執行到其所厲的**塊(通常是函式定義)時產生,在離開該**塊時終止。靜態變數在整個程式週期內都存在。
c++98 新增的標準模板庫 (stl)提供了模板類vector,它是動態陣列的替代品。c++11提供了模板類array, 它是定長陣列的替代品。
C primer plus 第4章 復合型別
1.陣列初始化 2.字串 兩種方式 c 風格字串 以 0結尾 string類庫 單引號表示字元常量 a 是字串編碼的簡寫,char a a 是正確的。但是 a 表示的是兩個字元a和 0組成的字串,實際上 a 表示的是字串所在的記憶體位址,因此char a a 是非法的 1 cin.getline a...
C Primer Plus 第11章 筆記
1 如果字串字面量之間沒有間隔,或者用空白字元分隔,c會將其視為串聯起來的字串字面量。2 用標準的陣列初始化模式給字串初始化時,末尾一定要加上 0 不然就不是乙個字串,而是乙個字元陣列。讓編譯器計算陣列的大小只能用在初始化時。4 const char ar1 something is pointin...
c primer plus 第8章 函式探幽
c 擴 展 了 c 語 言 的 函 數 功 能 通 過 將 inline 關鍵 字 用 於 函 數 定 義 並 在 首 次 調 用 該 函 數 前 提 供 其 函 數 定 義 可 以 使 得c 艹 編 譯 器 將 該 函 數 視 為 內 聯 函 數 也 就 是 說 編 譯 器 不 是 讓 程 序 跳...