在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是C語(yǔ)言(void*)類(lèi)型

汽車(chē)電子技術(shù) ? 來(lái)源:微亮筆記 ? 作者:PASSION ? 2023-02-24 14:31 ? 次閱讀

大家在C語(yǔ)言的學(xué)習(xí)過(guò)程中肯定見(jiàn)過(guò)各種指針?lè)?hào),如 int*, char* 等等等等。顧名思義,int就是一個(gè)指向整形的指針,而char則是一個(gè)指向字符的指針,而 “ void* ”是什么呢?本期就為大家介紹 空指針

void指針一般被稱(chēng)為通用指針或叫泛指針。它是C語(yǔ)言關(guān)于純粹地址的一種約定。當(dāng)某個(gè)指針是void型指針時(shí),所指向的對(duì)象不屬于任何類(lèi)型。

1、void *表示一個(gè)“不知道類(lèi)型”的指針,也就不知道從這個(gè)指針地址開(kāi)始多少字節(jié)為一個(gè)數(shù)據(jù)。和用int表示指針異曲同工,只是更明確是“指針”。

因此void*只能表示一個(gè)地址,不能用來(lái)&取值,也不能移動(dòng)指針,因?yàn)椴恢蓝嗌僮止?jié)是一個(gè)數(shù)據(jù)單位。

2、void *就是一個(gè)不能動(dòng)的“地址”,在進(jìn)行&、移動(dòng)指針之前必須轉(zhuǎn)型為類(lèi)型指針。

3、指針在只知道內(nèi)存,但是不知道是什么類(lèi)型的時(shí)候。

4、在C/C++中,在任意時(shí)刻都可以使用其它類(lèi)型指針來(lái)代替void指針,或者用void指針來(lái)代替其他類(lèi)型指針。

5、對(duì)指針變量的解引用,使用間接運(yùn)算符*達(dá)到目的。但是在使用空指針的情況下,需要轉(zhuǎn)換指針變量解引用。這是因?yàn)榭罩羔槢](méi)有與之關(guān)聯(lián)的數(shù)據(jù)類(lèi)型。編譯器無(wú)法知道void指針指向的數(shù)據(jù)類(lèi)型。因此,要獲取由void指針指向的數(shù)據(jù),需要使用在void指針位置內(nèi)保存的正確類(lèi)型的數(shù)據(jù)進(jìn)行類(lèi)型轉(zhuǎn)換。

也就是說(shuō),void*類(lèi)型的指針可以接受任意類(lèi)型的指針

但是不能夠進(jìn)行解引用操作,也不能進(jìn)行加減運(yùn)算

需要注意的是,void* 即使在接收某一具體類(lèi)型的指針后,它的類(lèi)型依然是void*,我們?nèi)匀粺o(wú)法對(duì)其進(jìn)行解引用操作,需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換才可以。

由于空指針的特殊性,我們一般將其運(yùn)用在函數(shù)參數(shù)里,用以接收各種類(lèi)型的參數(shù)。

例:

void* e1;
*(int*)e1;

下面附帶一個(gè)有空指針參與的qsort(快速排序)函數(shù)

注1:由于qsort是庫(kù)函數(shù),因此我在編寫(xiě)時(shí)將函數(shù)名改為了 ‘my_qsort’

注2:此函數(shù)只是向大家展示空指針的應(yīng)用,其中仍有指針?lè)矫娴闹R(shí),我們會(huì)在后續(xù)章節(jié)具體介紹

qsort 函數(shù)
void swap(char*buf1,char*buf2,int width)
//交換函數(shù)
{
  for (int i = 0;i < width;i++)
  {
char tmp = *buf1;
*buf1 = *buf2;
*buf2 = tmp;    
buf1++;    
buf2++;
  }
 }
void my_qsort(void* base,int sz,int width, int (*cmp)(void* e1,void* e2))
{
  for (int i = 0;i < sz;i++)
  {    for (int j = 0;j < sz - 1 - i;j++)
{      //兩個(gè)元素的比較
      if (cmp((char*)base + j * width, (char*)base + (j + 1) * width)>0) 
     {        //交換
        swap((char*)base + j * width, (char*)base + (j + 1) * width,width);
      }
    }
  }
}int cmp_int(const void* e1, const void* e2)
{
  return *(int*)e1 - *(int*)e2;
}
int main()
{
  int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  my_qsort(arr, sz, sizeof(arr[0]), cmp_int);}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140416
  • Int
    Int
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    16210
  • 符號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    55

    瀏覽量

    4535
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言void指針的基本認(rèn)識(shí)及典型應(yīng)用

    C語(yǔ)言中,*類(lèi)型就是指針類(lèi)型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因?yàn)樗鼈兌际峭环N
    發(fā)表于 02-01 09:26 ?1326次閱讀

    C語(yǔ)言中的基本數(shù)據(jù)類(lèi)型

    C語(yǔ)言是非常重要的一門(mén)程序設(shè)計(jì)語(yǔ)言,學(xué)好C語(yǔ)言再去學(xué)習(xí)其他編程語(yǔ)言將變得很輕松,因?yàn)榇蟛糠?/div>
    發(fā)表于 04-26 17:33 ?2309次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中的基本數(shù)據(jù)<b class='flag-5'>類(lèi)型</b>

    C預(yù)處理與C語(yǔ)言基本數(shù)據(jù)類(lèi)型

    指令表:注意:宏名的書(shū)寫(xiě)由標(biāo)識(shí)符與兩邊各兩條下劃線構(gòu)成。C語(yǔ)言基本數(shù)據(jù)類(lèi)型不同操作系統(tǒng)中數(shù)據(jù)類(lèi)型所占字節(jié)數(shù)圖解數(shù)據(jù)類(lèi)型的其他分類(lèi):變量常量(
    發(fā)表于 12-21 08:29

    C程序的運(yùn)行環(huán)境和C語(yǔ)言的數(shù)據(jù)類(lèi)型

    ⒈ 實(shí)驗(yàn)?zāi)康蘑?了解在具體的語(yǔ)言環(huán)境下如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。⑵ 通過(guò)運(yùn)行簡(jiǎn)單的C程序,初步了解C源程序的特點(diǎn)。⑶ 掌握C
    發(fā)表于 06-21 09:36 ?55次下載

    C語(yǔ)言voidvoid指針深層探索

    1.概述 本文將對(duì)void關(guān)鍵字的深刻含義進(jìn)行解說(shuō),并詳述voidvoid指針類(lèi)型的使用方法與技巧。 2.void的含義
    發(fā)表于 09-21 11:36 ?166次下載

    C語(yǔ)言教程之檢查字符類(lèi)型

    C語(yǔ)言教程之檢查字符類(lèi)型,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 09:38 ?0次下載

    C語(yǔ)言教程之顯卡類(lèi)型測(cè)試

    C語(yǔ)言教程之顯卡類(lèi)型測(cè)試,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 17:07 ?0次下載

    淺談void 型指針的高階用法

    通用指針或叫泛指針。它是C語(yǔ)言關(guān)于純粹地址的一種約定。當(dāng)某個(gè)指針是void型指針時(shí),所指向的對(duì)象不屬于任何類(lèi)型。 因?yàn)?b class='flag-5'>void指針不屬于任何
    的頭像 發(fā)表于 08-09 15:54 ?1856次閱讀
    淺談<b class='flag-5'>void</b> 型指針的高階用法

    STM32編程:void指針高階用法舉例,設(shè)計(jì)一個(gè)通用掉電存儲(chǔ)子系統(tǒng)

    一般被稱(chēng)為通用指針或叫泛指針。它是C語(yǔ)言關(guān)于純粹地址的一種約定。當(dāng)某個(gè)指針是void型指針時(shí),所指向的對(duì)象不屬于任何類(lèi)型。 因?yàn)?b class='flag-5'>void指針
    發(fā)表于 12-27 18:47 ?10次下載
    STM32編程:<b class='flag-5'>void</b>指針高階用法舉例,設(shè)計(jì)一個(gè)通用掉電存儲(chǔ)子系統(tǒng)

    C語(yǔ)言-void類(lèi)型作為萬(wàn)能指針類(lèi)型

    void類(lèi)型在基本數(shù)據(jù)類(lèi)型里是`空類(lèi)型`,`無(wú)類(lèi)型`; void
    的頭像 發(fā)表于 08-14 10:04 ?2124次閱讀

    一文揭秘C語(yǔ)言void指針

    void *表示一個(gè)“不知道類(lèi)型”的指針,也就不知道從這個(gè)指針地址開(kāi)始多少字節(jié)為一個(gè)數(shù)據(jù)。和用int表示指針異曲同工,只是更明確是“指針”。
    的頭像 發(fā)表于 02-02 17:18 ?1925次閱讀

    什么是void指針

    C語(yǔ)言中,*類(lèi)型就是指針類(lèi)型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因?yàn)樗鼈兌际峭环N
    的頭像 發(fā)表于 02-13 15:02 ?1629次閱讀

    C語(yǔ)言的數(shù)據(jù)類(lèi)型-2

    對(duì)于一個(gè)計(jì)算機(jī)程序,它所做的所有運(yùn)算的本質(zhì)都是數(shù)據(jù)的處理。但是數(shù)據(jù)的樣式并不單一,因此就有了各種各樣的數(shù)據(jù)類(lèi)型。在C語(yǔ)言中,為了處理這些復(fù)雜的數(shù)據(jù),C
    的頭像 發(fā)表于 02-21 14:44 ?985次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的數(shù)據(jù)<b class='flag-5'>類(lèi)型</b>-2

    如何理解C++中的void

    首先void*中的void代表一個(gè)任意的數(shù)據(jù)類(lèi)型,"星號(hào)"代表一個(gè)指針,所以其就是一個(gè)任意數(shù)據(jù)類(lèi)型的指針。
    的頭像 發(fā)表于 03-30 15:01 ?4694次閱讀
    如何理解<b class='flag-5'>C</b>++中的<b class='flag-5'>void</b>?

    C語(yǔ)言數(shù)據(jù)類(lèi)型有哪些

    C 語(yǔ)言中,數(shù)據(jù)類(lèi)型指的是用于聲明不同類(lèi)型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類(lèi)型決定了變量存儲(chǔ)占用的空間,以及如何解釋存儲(chǔ)的位模式。
    發(fā)表于 03-20 10:56 ?668次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>數(shù)據(jù)<b class='flag-5'>類(lèi)型</b>有哪些
    主站蜘蛛池模板: 国产操视频 | 九色在线播放 | 中文字幕第二区 | 中国成人免费视频 | 久久思re热9一区二区三区 | 黄色一级毛片看一级毛片 | 欧美性黄色 | 男人天堂网在线观看 | 亚洲一区二区三区中文字幕 | 日本免费黄色片 | 在线观看亚洲人成网站 | 国产美女精品久久久久久久免费 | 亚洲字幕久久 | 国产精品亚洲精品日韩动图 | 天天射天天操天天 | 欧美天天射 | 精品色综合 | 手机看片1024在线观看 | 视频高清正版在线观看 | 久草干| 特级片毛片 | 可以直接看的黄色网址 | 日本一区二区不卡视频 | 久久精品综合网 | 天天干夜夜爽天天操夜夜爽视频 | 欧美影院一区 | 天天摸天天舔天天操 | 日本黄色一区 | 久久精品免费 | 久久久噜噜噜久久久 | 精品新一区二区三区四区 | 97视频人人| 男女交性视频免费视频 | 久操青青 | 7799国产精品久久久久99 | 天天色天天综合网 | 五月激情婷婷网 | 2021年最热新版天堂资源中文 | 欧美一级视频免费观看 | 免费在线a视频 | 香蕉久久久久久狠狠色 |