在c語言中,*
即為指標型別,常用的有int *p
,char*q
,指標的記憶體大小與他們的型別有關,不同型別的指標有著不同的大小,如上述兩個指標,sizeof(*p) = 4
,sizeof(*q) = 1
。
void *
為不確定型別指標,而當我們void *h
時,此時的sizeof(*h)
是沒有大小的,即定義了void *
型別後,指標的記憶體大小未定。
你能設計乙個接受不論什麼型別的引數並返回interger (整數)結果的函式嗎?借這個問題來說如何使用
int
fuc(
void
*ptr)
return
(int
)*ptr;
在輸入指標型別引數時,不需要進行強制型別轉換,void *
常用在函式引數
、函式返回值
中需要相容不同指標型別的地方,我們可以將別的型別的指標無需強制型別轉換的賦值給void *
,只需要在返回時強制型別轉換為我們需要的指標型別,根據自己而定。 C語言 void和void 的區別
在c語言中void 常用於2個方面 對函式返回型別的限定和對函式引數限定。1 對函式返回型別的限定 當函式不需要返回型別是必須用void 來限定返回型別,限定了函式的返回型別為void後,函式不能有返回值。如 void fun int a 2 對函式引數型別的限定 當函式不允許接受引數時,必須用vo...
C語言 當void遇到 void
void 表示無 任意型別指標,大小為8b,任何型別指標均為8b 舉個例子 char a calloc 8,5 分配5個連續8位元組記憶體空間 int b calloc 8,5 分配5個連續8位元組記憶體空間 結果使用char型別接收,每個char占用乙個位元組,因為分配的空間總共有40位元組,所以...
void在C語言中特殊使用
在c語言中,在定義函式時,加在函式名前的 void 表示該函式沒有返回值,呼叫時直接書寫函式名和引數即可。但是有些函式明明在定義的時候不是void型,卻在呼叫時可能會在前面加上void,這表示程式並不關心呼叫該函式後的返回值是什麼,即告訴靜態 檢測工具不要去處理此處該函式的返回值。比如函式strcp...