色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是C語言(void*)類型

汽車電子技術 ? 來源:微亮筆記 ? 作者:PASSION ? 2023-02-24 14:31 ? 次閱讀

大家在C語言的學習過程中肯定見過各種指針符號,如 int*, char* 等等等等。顧名思義,int就是一個指向整形的指針,而char則是一個指向字符的指針,而 “ void* ”是什么呢?本期就為大家介紹 空指針

void指針一般被稱為通用指針或叫泛指針。它是C語言關于純粹地址的一種約定。當某個指針是void型指針時,所指向的對象不屬于任何類型。

1、void *表示一個“不知道類型”的指針,也就不知道從這個指針地址開始多少字節為一個數據。和用int表示指針異曲同工,只是更明確是“指針”。

因此void*只能表示一個地址,不能用來&取值,也不能移動指針,因為不知道多少字節是一個數據單位。

2、void *就是一個不能動的“地址”,在進行&、移動指針之前必須轉型為類型指針。

3、指針在只知道內存,但是不知道是什么類型的時候。

4、在C/C++中,在任意時刻都可以使用其它類型指針來代替void指針,或者用void指針來代替其他類型指針。

5、對指針變量的解引用,使用間接運算符*達到目的。但是在使用空指針的情況下,需要轉換指針變量解引用。這是因為空指針沒有與之關聯的數據類型。編譯器無法知道void指針指向的數據類型。因此,要獲取由void指針指向的數據,需要使用在void指針位置內保存的正確類型的數據進行類型轉換。

也就是說,void*類型的指針可以接受任意類型的指針

但是不能夠進行解引用操作,也不能進行加減運算

需要注意的是,void* 即使在接收某一具體類型的指針后,它的類型依然是void*,我們仍然無法對其進行解引用操作,需要進行強制類型轉換才可以。

由于空指針的特殊性,我們一般將其運用在函數參數里,用以接收各種類型的參數。

例:

void* e1;
*(int*)e1;

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

注1:由于qsort是庫函數,因此我在編寫時將函數名改為了 ‘my_qsort’

注2:此函數只是向大家展示空指針的應用,其中仍有指針方面的知識,我們會在后續章節具體介紹

qsort 函數
void swap(char*buf1,char*buf2,int width)
//交換函數
{
  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++)
{      //兩個元素的比較
      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);}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7629

    瀏覽量

    140160
  • Int
    Int
    +關注

    關注

    0

    文章

    24

    瀏覽量

    16198
  • 符號
    +關注

    關注

    0

    文章

    55

    瀏覽量

    4530
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    C語言void指針的基本認識及典型應用

    C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因為它們都是同一種
    發表于 02-01 09:26 ?1313次閱讀

    C語言中的基本數據類型

    C語言是非常重要的一門程序設計語言,學好C語言再去學習其他編程語言將變得很輕松,因為大部分
    發表于 04-26 17:33 ?2293次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的基本數據<b class='flag-5'>類型</b>

    C預處理與C語言基本數據類型

    指令表:注意:宏名的書寫由標識符與兩邊各兩條下劃線構成。C語言基本數據類型不同操作系統中數據類型所占字節數圖解數據類型的其他分類:變量常量(
    發表于 12-21 08:29

    C程序的運行環境和C語言的數據類型

    ⒈ 實驗目的⑴ 了解在具體的語言環境下如何編輯、編譯、連接和運行一個C程序。⑵ 通過運行簡單的C程序,初步了解C源程序的特點。⑶ 掌握C
    發表于 06-21 09:36 ?55次下載

    C語言voidvoid指針深層探索

    1.概述 本文將對void關鍵字的深刻含義進行解說,并詳述voidvoid指針類型的使用方法與技巧。 2.void的含義
    發表于 09-21 11:36 ?166次下載

    C語言教程之檢查字符類型

    C語言教程之檢查字符類型,很好的C語言資料,快來學習吧。
    發表于 04-25 09:38 ?0次下載

    C語言教程之顯卡類型測試

    C語言教程之顯卡類型測試,很好的C語言資料,快來學習吧。
    發表于 04-25 17:07 ?0次下載

    淺談void 型指針的高階用法

    通用指針或叫泛指針。它是C語言關于純粹地址的一種約定。當某個指針是void型指針時,所指向的對象不屬于任何類型。 因為void指針不屬于任何
    的頭像 發表于 08-09 15:54 ?1838次閱讀
    淺談<b class='flag-5'>void</b> 型指針的高階用法

    STM32編程:void指針高階用法舉例,設計一個通用掉電存儲子系統

    一般被稱為通用指針或叫泛指針。它是C語言關于純粹地址的一種約定。當某個指針是void型指針時,所指向的對象不屬于任何類型。 因為void指針
    發表于 12-27 18:47 ?10次下載
    STM32編程:<b class='flag-5'>void</b>指針高階用法舉例,設計一個通用掉電存儲子系統

    C語言-void類型作為萬能指針類型

    void類型在基本數據類型里是`空類型`,`無類型`; void
    的頭像 發表于 08-14 10:04 ?2104次閱讀

    一文揭秘C語言void指針

    void *表示一個“不知道類型”的指針,也就不知道從這個指針地址開始多少字節為一個數據。和用int表示指針異曲同工,只是更明確是“指針”。
    的頭像 發表于 02-02 17:18 ?1905次閱讀

    什么是void指針

    C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因為它們都是同一種
    的頭像 發表于 02-13 15:02 ?1608次閱讀

    C語言的數據類型-2

    對于一個計算機程序,它所做的所有運算的本質都是數據的處理。但是數據的樣式并不單一,因此就有了各種各樣的數據類型。在C語言中,為了處理這些復雜的數據,C
    的頭像 發表于 02-21 14:44 ?966次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的數據<b class='flag-5'>類型</b>-2

    如何理解C++中的void

    首先void*中的void代表一個任意的數據類型,"星號"代表一個指針,所以其就是一個任意數據類型的指針。
    的頭像 發表于 03-30 15:01 ?4673次閱讀
    如何理解<b class='flag-5'>C</b>++中的<b class='flag-5'>void</b>?

    C語言數據類型有哪些

    C 語言中,數據類型指的是用于聲明不同類型的變量或函數的一個廣泛的系統。變量的類型決定了變量存儲占用的空間,以及如何解釋存儲的位模式。
    發表于 03-20 10:56 ?657次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>數據<b class='flag-5'>類型</b>有哪些
    主站蜘蛛池模板: 久久re视频这里精品09首页 | 欧洲最强rapper潮水喷视频 | 黑兽在线观看高清在线播放樱花 | 亚洲 欧美 日韩 精品 自拍 | 特级做A爰片毛片免费69 | 狠狠婷婷综合久久久久久 | 狂操空姐电影 | 精品一二三区久久AAA片 | 久久只精品99品免费久 | 无码一区国产欧美在线资源 | 青青青久草 | 91传媒蜜桃香蕉在线观看 | xx在线观看| 久久免费看少妇高潮A片2012 | 国产极品白嫩超清在线观看 | 久久国产香蕉视频 | 蜜桃麻豆WWW久久囤产精品免费 | 国内精品不卡一区二区三区 | 国产午夜在线观看视频 | 成人免费毛片观看 | 精品国产乱码久久久久久口爆 | 欧美丰满少妇久久无码精品 | 八妻子秋霞理在线播放 | 蜜芽亚洲欧美一区二区电影 | 国产亚洲精品久久久久久久软件 | WWW国产精品内射熟女 | 最近中文字幕MV高清在线视频 | 中文字幕不卡一区二区三区 | 一手揉着乳头一手模仿抽插视频 | 亚洲合集综合久久性色 | 久久伊人天堂视频网 | 双腿打开揉弄高潮H苏安安秦慕深 | ca88亚洲城娱乐 | swag合集120部| 久青草影院 | 日本高清免费一本在线观看 | 中文字幕亚洲无线码高清不卡 | 丝袜美女被啪啪不带套漫画 | 亚洲欧美中文字幕网站大全 | 免费观看亚洲视频 | 国产精品AV视频一二三区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品