1. void指針 1.1 解釋最近因為工作需要開始重新學c語言,越學越發(fā)現(xiàn)c語言深不可測,當初用python輕輕松松處理的一些數(shù)據(jù),但是c語言寫起來卻異常的復雜,這個板塊就記錄一下我的c語言復習之路
孟村ssl適用于網站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
void
用在函數(shù)定義中可以表示函數(shù)沒有返回值或者沒有形式參數(shù),用在這里表示指針指向的數(shù)據(jù)的類型是未知的,而void *
表示一個有效指針,它確實指向實實在在的數(shù)據(jù),只是數(shù)據(jù)的類型尚未確定,在后續(xù)使用過程中一般要進行強制類型轉換。
void指針我們把它稱為通用指針,就是可以指向任意類型的數(shù)據(jù),也就是說,任何類型的指針都可以賦值給void指針
1.2 使用比較常見的malloc函數(shù)默認返回的類型就為
void*
,malloc函數(shù)原型:void *__cdecl malloc(size_t _Size);
在使用void指針的時候需要強制類型轉換
#includeint main() {int num = 1024;
int *pi = #
char *ps = "Fishc";
void *pv;
pv= pi;
printf("%d\n", *(int *)pv);
pv = ps;
printf("%s", (char *)pv);
return 0;
}
2. NULL指針
2.1 解釋2.2 使用NULL 是“零值、等于零”的意思,在 C 語言中表示空指針。從表面上理解,空指針是不指向任何數(shù)據(jù)的指針,是無效指針,程序使用它不會產生效果,我們可以在
#include
在這個頭文件找到NULL
的定義:#define NULL ((void *)0)
,可以看到NULL是一個指針,他的類型為void *
值為0
NULL的使用還是比較廣泛的,我們很多時候需要先定義一個指針類型然后再讓其指向,這樣的話我們就可以先初始化讓他指向一個
NULL
,否則初始化定義的指針它的值是隨機的,鬼只知道它會指向什么,我可以看看以下例子
例子1:
#includeint main(int argc, char* argv[])
{// 初始化一個指針未給它初始化定義
char* str=NULL;
// 直接打印它所指向的值
printf("%s", str);
return 0;
}
我們在clion輸出可以發(fā)現(xiàn),直接可以打印一個
(null)
#includeint main(int argc, char* argv[])
{// 初始化一個指針未給它初始化定義
char* str;
// 直接打印它所指向的值
printf("%s", str);
return 0;
}
而運行以上代碼,我們可以發(fā)現(xiàn)沒有任何輸出,我們可以考慮其實
printf
是有對NULL指針做處理的,但是如果你指向未知的地址,就不會有任何提示輸出,出現(xiàn)錯誤。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享題目:C語言tips-NULL指針和void指針-創(chuàng)新互聯(lián)
鏈接URL:http://sd-ha.com/article44/dohphe.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站維護、做網站、企業(yè)網站制作、外貿網站建設、響應式網站、App設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)