C void指標和NULL指標

2021-05-23 23:47:59 字數 1377 閱讀 5999

我們將從指標的語法和使用並結合例子來討論他們的區別。

void 指標:

cpp** 

void * pointer_variable;  

void這是是作為乙個關鍵字來使用。

例如:cpp** 

int i;  

float f;  

int* exf;  

float* test;  

then  

exf=&i;   

int型別指標指向int變數的位址空間,所以是對的。

如果寫成:

cpp** 

exf=&f;   

cpp** 

test=&i;   

上面一條語句將會報錯。

void型別指標是可以用來指向任何資料型別的特殊指標。

使用前面的例子,如果我們手動宣告乙個void型別指標:

cpp** 

void* sample;   

在前面的例子中,如果我們定義的乙個void型別指標去指向乙個float變數的位址空間是完全正確的。

cpp** 

sample=&f;   

cpp** 

sample=&i;   

在我們要取得指標所指位址空間的資料的時候使用的是 『*』操作符,程式設計師必須清楚了解到對於void指標不能使用這種方式來取得指標所指的內容。因為直接取內容是不允許的。而必須把void指標轉換成其他任何valid資料型別的指標,比如char,int,float等型別的指標,之後才能使用'*'取出指標的內容。這就是所謂的型別轉換的概念。

null pointer(空指標):

舉例:cpp** 

int* exforsys;  

exforsys=0;   

以上的宣告表示exforsys是乙個int型別的指標,但其不指向任何有效的位址空間,這表明exforsys有乙個空指標值(0)。

void指標和null指標的區別:

cpp** 

#include 

int *exforsys;  

void main()  

上面程式**的輸出如下:

null pointer assignment

上面的程式丟擲執行時的錯誤。表明指標變數exforsys還沒有被分配任何有效的位址空間,並且試圖訪問0位址空間就產生了錯誤資訊。

C void指標和NULL指標

我們將從指標的語法和使用並結合例子來討論他們的區別。void 指標 void pointer variable void這是是作為乙個關鍵字來使用。例如 int i float f int exf float test then exf i int型別指標指向int變數的位址空間,所以是對的。如果寫...

void指標和NULL指標

void指標我們稱之為通用指標,就是可以指向任意型別的資料。也就是說,任何型別的指標都可以賦值給void指標。舉例 includeint main 無型別指標沒辦法進行解引用,所以可以強制轉換 例子 includeint main 需要注意 使用void指標,不到必要的時候,不要亂用 如果乙個指標不...

C void型別指標的使用

一般情況下,指標的值只能賦給相同型別的指標。但是有一種特殊的void型別指標,可以儲存任何型別的物件位址,就是說任何型別的指標都可以賦值給void型別的指標變數。經過使用型別顯示轉換,通過void型別值的指標便可以訪問任何型別的資料。主要注意的是雖然通過void型別值的指標便可以訪問任何型別的資料,...