最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

什么是萬能指針?詳解C語言萬能指針的妙用

2021-07-20 14:44 作者:C語言基礎  | 我要投稿

簡單認識一下void

今天跟大家介紹的知識是C語言中的void關鍵字的用法,void在大部分小伙伴的程序中都只是用于函數(shù)無參數(shù)傳入,或者無類型返回。然而我們平時所定義的變量都會有具體的類型,int,float,char等等,那是否有void類型的變量呢?答案是:不行,編譯會出錯。如下測試代碼:


上圖很明顯編譯器不允許定義void類型的變量,變量都是需要占用一定內存的,既然void表示無類型,編譯器自然也就不知道該為其分配多大的內存,于是造成編譯失敗。雖然void不能直接修飾變量,但是其可以用于修飾指針的指向即無類型指針void*,無類型指針那就有意義了,無類型指針不是一定要指向無類型數(shù)據(jù),而是可以指向任意類型的數(shù)據(jù)。

void * 基本操作

大家其實在使用動態(tài)內存分配的使用就已經(jīng)遇到了void *的使用,來我們一起看看如下幾個標準函數(shù)的原型定義:

上面這些函數(shù)都是與內存操作有關的函數(shù),而void* 類型指針使用原則是: 必須要做強制類型轉換成為目標類型后才可以使用,如下測試代碼:

使用void * 實現(xiàn)無類型數(shù)據(jù)封裝

void既然如此的靈活一定大有用處,如果僅僅只是用來簡單地傳遞參數(shù)似乎有點大材小用,我們得把其用到上層的軟件設計上來。在一些項目中因為數(shù)據(jù)類型的不同導致重復編寫大量相同代碼,為了避免這個問題C++引入了模板這個模塊,C語言可以通過void* 類型的指針來完成,按下面我們以一個例子來跟大家介紹一種辦法能夠減少數(shù)據(jù)類型變化所帶來的程序重復代碼的增加。

上面的例子可能還是無法完全彰顯void*的強悍之處了,不過其主要的作用就是為了隱藏數(shù)據(jù)類型,大家也可以理解為一種數(shù)據(jù)類型的抽象處理,這也是面向對象編程的一種體現(xiàn)。

最后小結

對于void這個關鍵字的使用先講這么多吧!大家一定要記得對于一些編程技巧一定要嘗試著去使用,可能達到項目目標的方式有很多種,但是一些好的設計不僅僅會讓你的代碼增色不少,同時也會讓同事們覺得你是一個喜歡專研技術的人。

最后如果看文章很無聊,基礎比較差,正好在學習C/C++,不妨關注下關注下小編主頁視頻教程,通俗易懂,深入淺出,一個視頻只講一個知識點。視頻不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以觀看,隨時隨地漲姿勢。

什么是萬能指針?詳解C語言萬能指針的妙用的評論 (共 條)

分享到微博請遵守國家法律
郓城县| 资中县| 壶关县| 紫金县| 淄博市| 邵阳县| 吐鲁番市| 四子王旗| 岳池县| 茌平县| 吐鲁番市| 清丰县| 右玉县| 大足县| 金山区| 宿州市| 九江市| 昆山市| 阿城市| 肇源县| 龙井市| 绥江县| 通化县| 中方县| 玛多县| 司法| 五河县| 吴桥县| 虹口区| 迁安市| 尚志市| 江北区| 四川省| 伊宁县| 原平市| 潞城市| 喀喇沁旗| 虹口区| 长汀县| 太白县| 东光县|