c和c++的點滴積累(1)1.
mfc程式設計中存在著如果出現「記憶體不足」的對話方塊,一種情況是在申請記憶體的時候出現問題,也就是例如:char *pchar = new char[num]; 但此時num 為零或者負數的情況。
2.位運算只是用於char 和int 兩種型別,不適用於double,float,long double,void 型別。
3. 移位操作,在移位後數值小於256 的範圍內,向左移動移位則是乘2 ,向右移動一位則是除2
b = a<<2
當a*4 >256 的時候,b = a*4
–256;
當a*4<256 的時候,b = a*4;
4. string
類使用的方法
(1)首先引用標頭檔案#include
(2)
在使用string 的時候使用命名空間std ;或者宣告using namespace std;5.
在vc 當中,如果是某乙個工程需要被匯出供其它工程使用,需要加匯出標準__declspec(dllexport). 如果不新增上述標誌符,便不能匯出,其他工程便不能使用。如果是本工程需要使用其它工程中的內容,需要加上__declspec(dllimport). 雖然面對一般函式和靜態函式不加標誌符可以通過,但是面對靜態變數的時候便會出現連線錯誤。
6.struct
內部的成員和全域性變數當名字相同的時候,不會產生衝突!
7.在vc 下面進行編譯的過程中,先要生成中間檔案,在中間檔案的基礎上生成可執行或者是庫檔案。
8.深拷貝和淺拷貝的問題:區別是你傳遞的是位址還是值,如果傳遞的是位址的話便是淺拷貝,傳遞的是值的話便是深拷貝。淺拷貝的時候當變數是new 出來在進行刪除的時候一定要注意。 9.
使用malloc/free
和new/delete
的不同:
在生成物件的時候,通過
malloc
生成的,還必須要呼叫建構函式才可以進行初始化,刪除的時候,先是呼叫析構函式,再
free
()掉(
free
不能執行析構函式,而可能造成一些問題的存在
)。而new
後,系統自己呼叫構造、析構函式,不用在進行呼叫,只需要
delete
即可。在刪除陣列的時候,
delete pdata;
而不是delete pdata
;否則刪除的僅僅是第乙個元素。 1)
分配沒有成功。卻使用它 2)
記憶體分配成功,但是沒有初始化就使用它了 3)
操作越界,往往出現在
for迴圈中 4)
記憶體洩露,忘記釋放記憶體 5)
釋放了,卻還在使用
點滴積累 C 操作檔案
操作檔案 寫入檔案效果 寫入檔案 1 private void 儲存toolstripmenuitem click object sender,eventargs e 213 catch 1417 讀取檔案效果 讀取檔案 1 private void 檢視toolstripmenuitem clic...
c 學習積累1
1 值型別的變數本身包含他們的資料值 將儲存在棧中 而引用型別的變數包含的是指向包含資料值的記憶體塊的位置資訊 將儲存在受控的堆中 3 引用型別共分四種型別 類 介面 陣列 委派。類除了我們可以定義自己的型別外,又包括兩個比較特殊的型別object和string 它們為預定義引用型別 object是...
C 除錯積累1
d test test.cpp 1 error c2143 syntax error missing before pch creation point 我編寫了乙個標頭檔案,裡面是乙個結構體和乙個簡單的類。但是報錯如上面資訊 hicc.h typedef struct note note clas...