C語言補漏 void指標和NULL指標

2021-09-05 12:39:19 字數 1188 閱讀 6849

在定義變數時,變數的型別決定占用的記憶體大小;

直接定義無型別的變數,編譯器是不能他通過的。如下。

void a;
編譯器報錯

void指標我們稱之為通用指標,也就是可以指向任意型別的資料。也就是說,任何型別的指標都可以賦值給void指標。

測試一下:

#include int main()

執行結果:

pv: 000000df7cdff654,pi: 000000df7cdff654,&num: 000000df7cdff654

pv: 00007ff7e4e19ca8,ps: 00007ff7e4e19ca8

請按任意鍵繼續. . .

可以看出,任何型別的指標轉換為void型別的指標,是行的;

但是,不能直接對void指標就行解引用。使用之前需要轉換指標的型別。

如下:

#include int main()

執行結果:

pv: 000000eed8dcf904,pi: 000000eed8dcf904,&num: 000000eed8dcf904

num: 1024,*pi: 1024,*(int *)pv: 1024

pv: 00007ff7095f9ca8,ps: 00007ff7095f9ca8

(char*)pv: iloveyou,ps: iloveyou

請按任意鍵繼續. . .

null就是空指標,表示指向乙個不被使用的位址。

#define null ((void *)0)
問答:

0.如何有效地避免出現懸空指標?

答:懸空指標就是:指向了不確定的記憶體區域的指標,對這種指標就行操作會出現不可預知的錯誤,系統不報錯,但是結果不是預期的。

所以,當我們不知道指向**的時候,就可以指向null,可有避免麻煩;

1. 對null進行解引用,結果是什麼?

答:無論什麼系統,對null進行解引用,都是非法的,不通過;

★finished by songpl,2018.12.29

C語言補漏 指標

通過變數名訪問變數,稱為直接訪問 通過指標方式訪問,稱為間接訪問 變數名是為了方便程式設計師使用而定義的,記憶體存放資料的真相 指標就是位址的意思 指標變數是用來的存放位址的變數。普通的變數中存放的是資料,指標變數中存放的是位址 假設定義兩個指標變數pa和pf,指標變數在記憶體中,佔4個位元組。型別...

《C和指標》 C語言補漏 指標篇

沒錯,對於指標,我確實只能摘取書上的少許內容,因為我在資料結構的時候已經弄明白了很多,所以這一部分並沒有仔細的看,還有後面的用 c語言實現抽象資料型別,資料結構裡也有講,所以我建議還是先看 c和指標 再去學資料結構。1.在宣告指標變數時,可以為它指定初始值,如 char message hello ...

C語言中的void 和void 指標型別

c語言中的void 和void 指標型別 c語言,void,void指標 許多初學者對c中的void 和void 的指標型別不是很了解。因此常常在使用上出現一些錯誤,本文將告訴大家關於void 和void 指標型別的使用方法及技巧。首先,我們來說說void 的含義,void的字面意思是 無型別 vo...