問:什麼是引用?
答:引用就是乙個變數的別名(相對於真名),引用必須初始化,可以理解為乙個變數不能只有別名,總是乙個真名變數的別名,因此初始化就是告訴我們這個別名b的真名是a。
引用用於函式引數,比指標的使用更簡潔。
int a = 10;
int &b = a;//引用必須初始化
問:指標型別的引用?
答: 型別 *&指標引用名 = 指標;//也就是給指標其了乙個別名,這個別名也是指標。
問:const?
答:const是來控制這個變數是不可以改變的。int const *p=&a; const int *p=&a是完全等價的,表示的是p指向的內容(即*p)不可改變;int *const p = &a;表明的是p本身不能改變;
int const *const p = &a;表明的是p和p指向的內容不可改變。
若是變數a本身是const,那麼它的指標要體現出*p不可改變,也就是當const int a; 那麼指標需寫成int const*p = &a;
問:c++的新特性?
答:函式引數預設值,有預設值的引數必須在引數列表的最右端,無實參傳入用預設值,否則用實參覆蓋預設值;
函式過載,是指在相同作用域內,用同乙個函式名的定義的多個函式,引數可變(引數個數和引數型別不同);
內聯函式,編譯時將函式體**和實參代替函式呼叫語句,與普通函式相比,節省了呼叫函式(2)和返回(4)步驟,提高執行效率,使用上加關鍵字inline,其他與普通函式沒有區別。那麼為什麼不都用內聯函式?因為內聯編譯是建議性的,由編譯器決定;邏輯簡單,頻繁呼叫的函式建議使用內聯函式;遞迴函式無法使用內聯方式。
問:記憶體?
答:
申請和釋放乙個記憶體:
申請記憶體,運算子new,int *p = new int;
歸還(釋放),運算子delete,delete p; p = null。
申請和釋放一塊記憶體:
int *arr = new int[10]; //申請塊記憶體
delete arr; arr = null; //釋放塊記憶體
那麼申請記憶體一定會成功?不一定,所以要判斷arr == null,若為空指標,說明記憶體申請失敗。注意事項,釋放記憶體時,指標p要賦值null,防止誤操作呼叫兩次deleter p,就會使得同一記憶體重複**,那麼計算機就會出現問題。完善的寫法如下:
C 之離港篇學習筆記之const
const 控制變數是否可以變化 int x 3 變數 const int x 3 常量 變數名 x 變數名 x 儲存位址 x 儲存位址 x 儲存內容 3 可變 儲存內容 3 不可變 const int p null int const p null int const p null const i...
筆記 C 遠征之離港篇)C 函式新特徵
c 帶來了很多新特徵,本節內容主要講了三塊內容 函式引數預設值 函式過載 內聯函式。一 函式引數預設值 1.有預設引數值的引數必須在參數列的最右端,否則會報錯 如 void fun int i,int j 5,int k 10 2.無實參用預設值,否則實參將覆蓋預設值 例如 includeusing...
學習筆記之01程式設計師起航篇
漢企奇點網路zini0908期班。net 兩位陳老師都很親切呢 做程式猿預計前期會比較辛苦,但是有付出就會有收穫,一分耕耘一分收穫,要不斷學習,持之以恆,以後學過的課要及時總結 記錄 鞏固。程式猿工作過程中要穩住心,坐定,堅持下去。既然決定走下去學點東西一定要堅持 不能只著眼於碼農的工作,以後還得奔...