<1 如果字串字面量之間沒有間隔,或者用空白字元分隔,c會將其視為串聯起來的字串字面量。
<2 用標準的陣列初始化模式給字串初始化時,末尾一定要加上『\0』,不然就不是乙個字串,而是乙個字元陣列。
❤️ 讓編譯器計算陣列的大小只能用在初始化時。
<4
const
char ar1=
"something is pointing at me."
;
[注]:ar1是代表陣列的首位址, 是常量。不能更改ar1,如果改變了ar1,則意味著改變了陣列的儲存位置(即位址)。可以進行類似ar1 + 1這樣的操作,標識陣列的下乙個元素,但是不允許進行++ar1這樣的操作。(遞增運算子只能用於變數名前)const
char
*pt1 =
"something is pointing at me."
;
[注]:指標形式可以使用遞增運算子。因為指標形式是把資料(字串,數字…)的位址儲存在指標變數中。開始時指標指向該字串的首字元,但由於它是變數,故可以使用遞增運算子。
<5 建議在把指標初始化為字串字面量時使用const限定符(這樣減少出錯的概率)
<6 不建議使用gets(),它不安全。
<7 puts()函式會在待輸出字串末尾新增乙個換行符,而fputs()不會這樣做。
<8 空字元和空指標
空字元:』\0』 是用於標記c字串末尾的字元,其對應字元編碼是0。
空指標:null 該值不會與任何資料的有效位址對應。函式用它返回乙個有效位址表示某些特殊情況發生,例如遇到檔案結尾或未能按預期執行。
【注】: 空字元是整數型別,空指標是指標型別。(容易混淆是因為兩者都可以用數值0來表示)
<9 c編譯器允許main()沒有引數或者有兩個引數(一些實現允許main()有更多的引數,屬於對標準的擴充套件)。
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 第8章 函式探幽
c 擴 展 了 c 語 言 的 函 數 功 能 通 過 將 inline 關鍵 字 用 於 函 數 定 義 並 在 首 次 調 用 該 函 數 前 提 供 其 函 數 定 義 可 以 使 得c 艹 編 譯 器 將 該 函 數 視 為 內 聯 函 數 也 就 是 說 編 譯 器 不 是 讓 程 序 跳...
c primer plus 第3章 處理資料
c 的 基 本 類 型 分 為 兩 組 一 組 由 存 儲 為 整 數 的 值 組 成 另 一 組 由 儲存 為 浮 點 格 式 的 值 組 成 整 型 之 間 通 過 存 儲 值 時 使 用 的 內 存 量 及 有 無 符 號 來 區 分 整 型 從 最小 到 最 大 依 次 是 bool cha...