C++對C的升級 1、 聲明定義 C++中更強調語言的實時性,所有的變量都可在使用時再定義。 例:for(int i = 0; i < 10; i++) 2、 register關鍵字的升級 在C++中依然支持register關鍵字,并且可以取得register變量的地址,在進行取地址時編譯器會將該變量優化到內存中 3、 const關鍵字 在C++中,編譯器會為const常量分配空間,但是不會使用其內存空間的值 4、 內存分配與釋放 C++中的動態內存分配:C++中通過new關鍵字進行動態內存申請; C++中的動態內存申請是基于類型進行的; Delete關鍵字用于內存釋放 例:數組的內存分配: 一維數組:char *ptr = new char[100]; 二維數組:char (*ptr)[2] = new char[2][2]; 三維數組:char (*ptr)[6][6] = new char[6][6][6];
New與malloc的區別: new關鍵字是C++的一部分,malloc是由C庫提供的函數; new以具體類型為單位進行內存分配,malloc是以字節為單位進行內存分配; new在申請單個類型變量時可進行初始化,malloc不具備初始化的特性;
5、 引用 VS 指針 (1)引用的定義:int a = 1; int &b = a;此時我們稱b是a的別名,即為引用; 注意:定義引用時一定要初始化,指明該引用變量是誰的別名; Const引用是指向const變量的引用 (2)函數傳參:按引用傳參 引用傳遞方式是在函數定義時在形參前面加上引用運算符,如:void swap(int &a,int &b); 按值傳遞方式容易理解,但是形參值的改變不能對實參產生影響; 地址傳參方式通過形參的改變使相應的實參改變,但程序容易出錯且難以閱讀; 引用作為參數對形參的任何操作都能改變相應的實參的數據,又使函數調用顯得方便自然 (3)函數返回值:引用作為函數返回值 引用的另一個作用適用于返回引用的函數; 函數返回引用的一個主要目的是將函數放在賦值運算符的左邊; 注意:不能返回對局部變量的引用; (4)引用與指針的區別 引用訪問一個變量是直接訪問,而指針是間接訪問; 引用是一個變量的別名,本身不單獨分配自己的內存空間,而指針有自己的內存空間; 引用一經初始化不能再引用其他變量,而指針可以; 注:盡可能使用引用,不得已時使用指針!
新聞熱點
疑難解答
圖片精選