空指標和未初始化的指標的區別

2021-10-03 03:41:21 字數 590 閱讀 3520

1.為什麼指標變數定義時一定要初始化? 

因為你首先要理解一點:記憶體空間不是你分配了才可以使用只是你分配了之後使用才安全。

為什麼要進行對指標初始化呢?

因為指標未被初始化,所以指標所指向的也是隨機的,他是個野指標,如果你引用指標,並修改這個指標所指向的內容,而如果這個指標所指向的內容恰好是另外乙個程式的資料的話,你將其進行修改了,就會導致另外乙個程式可能不能正常執行了。

2.指標變數初始化為null是什麼意思?

意思是說,強指標變數置空,初始化為null,使它不指向任何內容,這樣引用它也不會出現上面的問題

總之一點,記住在使用指標之前要對它進行初始化操作就可以了

3、空指標和未初始化的指標

空指標的簡單描述:它 「與任何物件或函式的指標值都不相等」。也就是說, 取位址操作符 & 永遠也不能得到空指標, 同樣對 malloc() 的成功呼叫也不會返回空指標, 如果失敗, malloc() 的確返回空指標, 這是空指標的典型用法:表示 「未分配」或者 「尚未指向任何地方」的指標。

空指標和未初始化的指標:

空指標在概念上不同於未初始化的指標。空指標可以確保不指向任何物件或函式; 而未初始化指標則可能指向任何地方。

未初始化的指標

1.我們定義了乙個指標,一定要初始化,比如 int a,沒有初始化時,a的指向是不明確的。若它指向非法位址,這時的操作會報異常 若它指向乙個合法位址,這是非常危險的,因為這樣可能更改乙個正在使用的數值。若在mcu中,指標指向非法位址,程式會跑飛。2.關於null指標,有時我們會寫乙個函式,這個函式返...

未初始化指標

今天碰到個未初始化指標的問題。大意如下 class a public b m pb class b blah,blah,blah void func a pa b pb new b 初始化pb.pa m pb pb std vector a aptrs apters.push back pa fun...

未初始化和非法的指標

下面這個 說明了乙個極為常見的錯誤 int a a 12 警告 究竟a應該指向 我們宣告了這個變數,但從未對它進行初始化,所以我們沒有辦法 12這個值儲存於什麼地方。從這一點看,指標變數和其他變數並無區別,如果變數是靜態的,它會被初始化為0.但如果變數是自動的,它根本不會被初始化。無論哪種情況,宣告...