C語言指標高階部分 void指標和資料指標

2021-09-02 22:19:45 字數 1375 閱讀 3067

概念

void指標

資料指標

void指標

void指標的基本概念

void的意思就是「無型別」,void指標則為「無型別指標」,void指標可以指向任何型別的資料。

所以void指標一般被稱為通用指標或者泛指針,或者叫做萬能指標

void的意思就是「無型別」,void指標則為「無型別指標」,void指標可以指向任何型別的資料。

所以void指標一般被稱為通用指標或者泛指針,或者叫做萬能指標

定義形式 :

void *p;

**在c語言中在任何時候都可以用void型別的指標來代替其他型別的指標,void指標可以指向任何資料型別的變數**

**如果要通過void指標去獲取它所指向的變數值時候,需要先將void指標強制型別轉換成和變數名型別想匹配的資料型別指標後再進行操作;**

指標的強類型別轉化:

void  *p;

int *pa = (int *)p;

然後才能對原來的void指標指向的空間進行操作

任何型別的指標都可以賦值給void指標,無需進行強制型別轉換;

float f = 1.22f;

float *p1 = &f;

p = p1;//將float指標賦值給p

void指標的應用場合:

當進行純粹的記憶體操作的時候,或者傳遞乙個指向未定型別的指標時,可以使用void指標;

void* memcpy(void *addr1,void *addr2,size_t n);

該函式只進行純粹的記憶體拷貝,包括null字元在內的任何內容都將被拷貝

1:對函式引數的限定

2:對函式返回的限定

3:void指標也常用作函式指標

1:對函式引數的限定

2:對函式返回的限定

3:void指標也常用作函式指標

**如下所示:

#include

int main(void)

資料指標

資料指標的概念:

在嵌入式程式設計當中,可能在特定的記憶體但願讀寫內容,彙編有對應的mov命令,而除了c/c++以外的程式語言基本上沒有直接訪問記憶體的能力

利用資料指標可直接 通過記憶體位址操作特定的記憶體

unsigned int *p = (unsigned int *)0xff00ff00;

*p = 11;

資料指標操作特定的記憶體的時候一定要謹慎,不是所有記憶體都可以操作,必須要對硬體比較了解後,才能進行操作(可能會出現段錯誤)

**能夠run,如果有需要的話,可以直接拉下來run一下,看看結構體陣列是怎麼進行初始化操作和使用的。謝謝大家的訪問,如有寫的不好的地方,希望大家能夠及時的提出來,謝謝**

C語言指標高階部分 void指標和資料指標

void指標 資料指標 void指標 void指標的基本概念 void的意思就是 無型別 void指標則為 無型別指標 void指標可以指向任何型別的資料。所以void指標一般被稱為通用指標或者泛指針,或者叫做萬能指標定義形式 void p 在c語言中在任何時候都可以用void型別的指標來代替其他型...

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

在定義變數時,變數的型別決定占用的記憶體大小 直接定義無型別的變數,編譯器是不能他通過的。如下。void a 編譯器報錯 void指標我們稱之為通用指標,也就是可以指向任意型別的資料。也就是說,任何型別的指標都可以賦值給void指標。測試一下 include int main 執行結果 pv 000...

Void型別的指標 C語言

關鍵字 void 表示函式不接受任何引數或不返回任何值,同時還可以用在建立通用指標 乙個可指向任何型別的資料物件的指標。如 void ptr 將ptr 宣告為乙個通用指標,但沒有指定它指向的東西。void 指標最常見的用途是用於宣告函式的引數。你可能會希望你的乙個函式能夠處理不同的型別的引數,可以將...