下表列出了 c++ 支援的其他一些重要的運算子。
運算子描述
sizeof
sizeof 運算子返回變數的大小。例如,sizeof(a) 將返回 4,其中 a 是整數。
condition ? x : y
條件運算子。如果 condition 為真 ? 則值為 x : 否則值為 y。
,逗號運算子會順序執行一系列運算。整個逗號表示式的值是以逗號分隔的列表中的最後乙個表示式的值。
.(點)和 ->(箭頭)
成員運算子用於引用類、結構和共用體的成員。
cast
強制轉換運算子把一種資料型別轉換為另一種資料型別。例如,int(2.2000) 將返回 2。
&指標運算子 & 返回變數的位址。例如 &a; 將給出變數的實際位址。
*指標運算子 * 指向乙個變數。例如,*var; 將指向變數 var。
delete 釋放new分配的單個物件指標指向的記憶體
delete 釋放new分配的物件陣列指標指向的記憶體
a *a = new a[10];delete a; //僅釋放了a指標指向的全部記憶體空間 但是只呼叫了a[0]物件的析構函式 剩下的從a[1]到a[9]這9個使用者自行分配的m_cbuffer對應記憶體空間將不能釋放 從而造成記憶體洩漏
delete a; //呼叫使用類物件的析構函式釋放使用者自己分配記憶體空間並且 釋放了a指標指向的全部記憶體空間
delete ptr 代表用來釋放記憶體,且只用來釋放ptr指向的記憶體。
delete rg 用來釋放rg指向的記憶體,!!還逐一呼叫陣列中每個物件的destructor!!
對於像int/char/long/int*/struct等等簡單資料型別,由於物件沒有destructor,所以用delete 和delete 是一樣的!但是如果是c++物件陣列就不同了!
delete 與 delete 釋放記憶體
以下內容來引自 我們通常從教科書上看到這樣的說明 delete 釋放new分配的單個物件指標指向的記憶體 delete 釋放new分配的物件陣列指標指向的記憶體 那麼,按照教科書的理解,我們看下下面的 int a new int 10 delete a 方式1 delete a 方式2 肯定會有很多...
C 使用delete釋放記憶體
當需要記憶體時,可以使用new來請求,這只是c 記憶體管理資料報中有魅力的乙個方面。另乙個方面是delete運算子,它使得在使用完記憶體後,能夠將其歸還給記憶體池。這是通向最有效的使用記憶體的關鍵一步。歸還或釋放 free 的記憶體可供程式的其他部分使用。使用delete時,後面要加上指向記憶體塊的...
delete釋放new 開闢的記憶體
直接看下面這道題 使用 char p new char 10 申請一段記憶體,然後使用delete p釋放,有什麼問題?a 會有記憶體洩露 b 不會有記憶體洩露,但不建議用 c 編譯就會報錯,必須使用delete p d 編譯沒問題,執行會直接崩潰 這道題題目開闢的是10個char型別的空間,因為是...