日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言void*指针,C语言void指针

發(fā)布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言void*指针,C语言void指针 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C語言void指針教程

在 void 的意思就是 “無類型”,void 指針則為 “無類型指針”,void 指針可以指向

void指針使用

在 C 語言中在任何時候都可以用 void 類型的指針來代替其他類型的指針,void 指針可以指向任何數(shù)據(jù)類型的變量。

如果要通過 void 指針去獲取它所指向的變量值時候,需要先將 void 指針強(qiáng)制類型轉(zhuǎn)換成和變量名類型相匹配的數(shù)據(jù)類型指針后再進(jìn)行操作。

任何類型的指針都可以賦值給 void 指針,無需進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

C語言void指針詳解

定義

void *p

說明

我們使用 void * 定義了一個萬能指針。

void指針使用場景

對函數(shù)參數(shù)的限定。

對函數(shù)返回的限定。

void 指針也常用作函數(shù)指針。

void指針強(qiáng)制類型轉(zhuǎn)換詳解

語法

*((int*)pa

說明

我們將一個 void 類型的指針 pa,轉(zhuǎn)換成了 int 類型的指針,并取其值。

案例

定義void指針

void 指針可以指向任何數(shù)據(jù)

#include

int main(){

printf("嗨客網(wǎng)(www.haicoder.net)\n\n");

int a = 1024;

void *pa = &a;

printf("pa = %p\n", pa);

return 0;

}

程序運(yùn)行后,控制臺輸出如下圖所示:

我們首先,定義了一個 int 類型的變量 a,接著,我們定義了一個 void 類型的指針,該指針用來保存了 int 類型的變量的地址,因此,我們可以看出,void 指針可以保存任何數(shù)據(jù)類型的地址。

void指針不可以直接使用

void 指針不可以直接使用,必須經(jīng)過類型轉(zhuǎn)換后才可以使用

#include

int main(){

printf("嗨客網(wǎng)(www.haicoder.net)\n\n");

int a = 1024;

void *pa = &a;

printf("pa = %p, *pa = %d\n", pa, *pa);

return 0;

}

程序運(yùn)行后,控制臺輸出如下圖所示:

我們直接使用 *pa,打印了 void 指針指向的變量的值,我們發(fā)現(xiàn)程序報錯,因?yàn)?#xff0c;void 指針不可以直接使用,必須經(jīng)過

#include

int main(){

printf("嗨客網(wǎng)(www.haicoder.net)\n\n");

int a = 1024;

void *pa = &a;

printf("pa = %p, *pa = %d\n", pa, *((int*)pa));

return 0;

}

程序運(yùn)行后,控制臺輸出如下圖所示:

這次,我們在打印的時候,將 void 指針強(qiáng)制類型轉(zhuǎn)換成了 int 指針,最后,我們看到可以正確輸出了 void 指針指向的值,因此,void 指針不可以直接使用,必須強(qiáng)制類型轉(zhuǎn)換后才可以使用。

任何指針都可以賦值給void指針

任何指針無需強(qiáng)制類型轉(zhuǎn)換,都可以賦值給 void 指針

#include

int main(){

printf("嗨客網(wǎng)(www.haicoder.net)\n\n");

int *pa;

double *pb;

long *pc;

void *vpa = pa;

vpa = pb;

vpa = pc;

return 0;

}

程序運(yùn)行后,控制臺輸出如下圖所示:

我們可以看到,我們分別將 int 類型的指針、double 類型的指針和 long 類型的指針賦值給了 void 類型的指針,因此,我們可以看出,void 類型的指針可以接受任何類型的指針變量。

C語言void指針總結(jié)

在 C 語言中,void 指針可以指向任何類型的數(shù)據(jù)。所以 void 指針一般被稱為通用指針或者泛指針,也可以叫做萬能指針。在 C 語言中在任何時候都可以用 void 類型的指針來代替其他類型的指針,void 指針可以指向任何數(shù)據(jù)類型的變量。

如果要通過 void 指針去獲取它所指向的變量值時候,需要先將 void 指針強(qiáng)制類型轉(zhuǎn)換成和變量名類型相匹配的數(shù)據(jù)類型指針后再進(jìn)行操作。任何類型的指針都可以賦值給 void 指針,無需進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

總結(jié)

以上是生活随笔為你收集整理的c语言void*指针,C语言void指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。