知識點一
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 的操...