C和C 的點滴積累(1)

2021-05-02 19:16:56 字數 1340 閱讀 8597

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...