C primer 5th 第二章閱讀筆記

2021-07-27 11:15:03 字數 998 閱讀 3557

知識點一

using type=型別 可以取代typedef用於別名宣告。

例如:

using do =double;
等價於

typdef double do;
二者的意思都是do是double的同義詞或者別名;

但在型別別名中千萬注意指標,不然會引起誤解!例如:

typedef

char *ptr; //ptr是char*的別名

const ptr cstr=0; //cstr是乙個指向char的常量指標,相當於const char* cstr=0

const ptr *ps; //ps是指標的指標,相當於const char **ps

知識點二

頂層(top-level)const:指標本身是個常量,即指標常量;

底層(low-level)const:指標所指的物件是個常量,即常量指標;

區別和辨識:

1.(指標)和 const(常量) 誰在前先讀誰 ;象徵著位址,const象徵著內容;誰在前面誰就不允許改變。

int a =3;

int b = 1;

int c = 2;

intconst *p1 = &b;//const 在前,定義為常量指標

int *const p2 = &c;//*在前,定義為指標常量

2.從右往左看,看const離誰近

int

const* p; //const修飾的是*p,即*p的內容不可通過p改變,但p不是const,p可以修改,*p不可修改;

const

int* p; //同上

int* const p; //const修飾的是p,p是指標,p指向的位址不能修改,p不能修改,但*p可以修改;

文字查詢程式(C primer5th)

書上的乙個比較簡單的例題,可以輸出文字中單詞總共出現的次數,所在的行數及所在行的內容。主要的思路是建立乙個vector來分行儲存文字,然後將單詞及單詞出現行數 set 建立乙個map。通過查詢單詞獲得其對映的set。set的size為出現的次數,set的元素為出現的行數,通過set元素作為vecto...

C primer 5th 第六章筆記

總結 6.1 基礎 陣列 和 函式不能充當返回值,可以使用指向他們的指標.自動變數 生存週期 作用域 區域性靜態變數 生存週期 作用域 函式宣告 函式原型 6.2 引數傳遞 值傳遞 變數,指標,函式 傳值呼叫 引用傳遞 避免大量拷貝,const 修飾能擴大其型別容納範圍。形參的頂層const會被忽略...

C primer 5th 第四章筆記

運算子 一元 二元 三元 組合運算子 和 運算物件 優先順序 使用 避免優先順序的混淆的問題 結合律 求值順序 二元運算子兩邊的表示式計算順序可能存在差異,應該避免 對優先順序 結合率 求值順序的解釋 如下表示式 我們假設 g 的操作是將全域性變數 i 10 的值 乘以 2 返回 我們假設 h 的操...