你可能會遇到需要在乙個函式中初始化一塊記憶體的場景,這時,你應該使用二級指標,原因是實參和形參不是同乙個指標,在函式結束後,形參指標將會被釋放,結果是實參最終還是指向本身所指向的空間。如下所示使用二級指標或者一級指標的引用。
void
init
(node *
* node)
//當你使用引用
void
init
(node *
&node)
const關鍵字使得其修飾變數具有唯讀屬性。
const
int& a =
200;
int q =
200;
const
int&p = q;
更多的是作為函式的形參
void
println
(const
int&a)
使用內聯函式可以提高程式的執行效率,用inline修飾該函式即可,編譯器會把函式的**貼到可執行的地方,當然,如果你使用了大量的迴圈,比較銷毀記憶體的函式的時候,編譯器就不會把該函式設定成內聯函式,因為內聯函式雖然提高了程式的執行效率,但是在一定程度上也加大了記憶體的開銷。
inline void
test
(int a)
intmain()
在c++中使用預設值作為函式的引數,如果你在呼叫函式時進行傳參,則採用你傳遞的引數,否則就採用預設的值作為函式的引數。
void
test
(int a =1)
intmain()
函式過載滿足的條件是,函式名相同,引數不同,引數可以是引數的個數和型別,值得注意的是,函式的返回值型別不能作為函式過載的條件,如果使用了預設值引數的函式,也不能作為函式過載的條件
void
test
(int a)
void
test
(char a)
intmain()
呼叫這個過載函式的時,傳什麼型別的引數,編譯器就會根據型別來匹配對應的函式。
//下列寫法是不可取的
inttest
(int a)
void
test
(int a)
void
test
(int a =1)
void
test
(int a=1,
int i =2)
當使用函式指標的時,編譯器會根據函式指標的引數型別自動匹配過載的函式
void
test
(int a)
void
test
(char a)
typedef void
(* fun)
(int a)
;int
main()
這時func會指向test(int a)函式
c 划水快速入門 2
這一次會主要精簡一下我之前做過的筆記,以及有一些大段的東西也仍然是直接複製的,但是也會標記好引用 其實就是加乙個const const int a 5 那麼a就永遠是5了 const 資料型別 常量名 值 來自呵呵老師 public enum 列舉名 只能放在class或者namespace中 列舉...
tinyxml快速入門 2
在 tinyxml快速入門 一 中我介紹了使用tinyxml庫如何建立和列印xml檔案,下面我介紹使用tinyxml庫對xml檔案進行一系列的操作,包括獲取xml檔案宣告,查詢指定節點 刪除指定節點 修改指定節點和增加節點的用法。在 tinyxml快速入門 一 中我們知道xml檔案中的乙個節點元素實...
C 快速入門
1.1 呼叫 gnu編譯器的預設命令是 g g prog.cc o prog unix 的 shell視窗 cc prog.cc 標準的輸入與輸出物件 處理輸入時使用的命令 cin cin為 istream型別物件 處理輸出時使用的命令 cout cout為 ostream型別物件 標準庫的另外兩個...