『壹』 void*有什麼意義
我的理解是這樣的,void*只指定了變數的性質是指針並沒有指定類型。
一個指針經過void*變數中轉之後並不會改變類型,如果改變了,一定是會出錯的。
也就是說double *ptr2=(double*)voids;並不會把直正地址所指向的變理轉成double型,強轉只會引入錯誤,只有相互兼容的類型才可強轉。
『貳』 VOID是什麼意思
表示空類型,它跟int,float是同地位的,一般用在沒有返回值的函數中,比如你寫void
main
(),主函數完了不用寫return
語句,但是如果是int
main
()或者是main
(),你不寫return
語句它就會有warning
『叄』 求高人解釋 void,的含義和作用
其它什麼概念就不多說了,以下面幾個例子來說明void的作用。
1.void的聲明作用
void可用來聲明一個函數,表示此函數無返回值或者是返回一個無類型的指針。例如:
void func_no_return();
表示此函數無返回值。函數體內有沒有return 都可以,如果加return,則return後面不跟任何值。
void * func_void_return();
表示此函數返回一個無類型的指針,也就是說什麼樣指針類型都可以。例如下面函數的定義:
void * func_void_return()
{
int * a;
int b;
a = &b;
return a;
}/*返回int型的指針*/
void * func_void_return()
{
char * a ="dfasdfa";
return a;
}/*返回char型的指針*/
等等。
應用:void *malloc (Size) 函數,malloc函數為調用者分配一塊Size大小的內存,並將此內存的地址返回給函數。至於此內存是什麼樣的類型,則可以由調用者自己確定。
2.void作為函數參數
int func_void_parameter(void)與int func_void_parameter()的區別。
前者表示此函數沒有參數,如果你在調用此函數時,使用了參數,則編譯器會報錯誤。你可以親自試試。
後者也表示此函數沒有參數,如果你在調用此函數時,使用的了參數,則有的編譯器會報錯或警告,也有的則視而不見。gcc則出現警告,cc則無視此錯誤。你也可以親自編程測試。
int func_void_parameter(void * param_ptr);
表示此函數的參數指針,無類型,即什麼樣的指針類型都可以傳入到此函數中。
應用: void * memcpy(void * Target, const void * Source, size_t n);
這是函數庫中的內存拷貝函數,記得只是內存拷貝。如果參數不是void類型的,那此函數太無聊了。
3.void類型的指針不能進行算術運算。
void * ptr;
ptr++; ptr--;這都是不可以的。想想看,ptr++指的是運算後,將指針指向下一個值,而不是指針的值加1。
就先這么多,如果有問題再說。
『肆』 void是什麼意思
void[英][vɔɪd][美][vɔɪd]
adj.無效的; 空的,空虛的,沒人住的; (職位)空缺著的;
n.太空,宇宙空間; 空位,空隙; 空虛感,寂寞的心情;
vt.使無效; 宣布…作廢; 取消; 排泄;
第三人稱單數:voids過去分詞:voided復數:voids現在進行時:voiding過去式:voided
例句:
1.
This void raises interesting questions.
這種空白提出了一些令人感興趣的問題。
2.
Peer-to-peer websites have filled the void.
點對點網站填補了這個空缺
『伍』 這個void有什麼用,有它和沒它有什麼區別
1.概述
許多初學者對C/C++語言中的void及void指針類型不甚理解,因此在使用上出現了一些錯誤。本文將對void關鍵字的深刻含義進行解說,並
詳述void及void指針類型的使用方法與技巧。
2.void的含義
void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。
void幾乎只有「注釋」和限製程序的作用,因為從來沒有人會定義一個void變數,讓我們試著來定義:
void a;
這行語句編譯時會出錯,提示「illegal use of type 'void'」。不過,即使void a的編譯不會出錯,它也沒有任何實際意義。
void真正發揮的作用在於:
(1) 對函數返回的限定;
(2) 對函數參數的限定。
我們將在第三節對以上二點進行具體說明。
眾所周知,如果指針p1和p2的類型相同,那麼我們可以直接在p1和p2間互相賦值;如果p1和p2指向不同的數據類型,則必須使用強制類型
轉換運算符把賦值運算符右邊的指針類型轉換為左邊指針的類型。
例如:
float *p1;
int *p2;
p1 = p2;
其中p1 = p2語句會編譯出錯,提示「'=' : cannot convert from 'int *' to 'float *'」,必須改為:
p1 = (float *)p2;
而void *則不同,任何類型的指針都可以直接賦值給它,無需進行強制類型轉換:
void *p1;
int *p2;
p1 = p2;
但這並不意味著,void *也可以無需強制類型轉換地賦給其它類型的指針。因為「無類型」可以包容「有類型」,而「有類型」則不能包
容「無類型」。道理很簡單,我們可以說「男人和女人都是人」,但不能說「人是男人」或者「人是女人」。下面的語句編譯出錯:
void *p1;
int *p2;
p2 = p1;
提示「'=' : cannot convert from 'void *' to 'int *'」。
3.void的使用
下面給出void關鍵字的使用規則:
規則一 如果函數沒有返回值,那麼應聲明為void類型
在C語言中,凡不加返回值類型限定的函數,就會被編譯器作為返回整型值處理。但是許多程序員卻誤以為其為void類型。
『陸』 *(void **)&i是什麼意思最後轉化後的結果是什麼幫忙解釋一下
i 是一個變數
&i 是一個變數的地址
(void **)&i 是把變數的地址轉換成無類型指針的指針
*(void **)&i 取地址內的值
最後的結果是:得到了用 i 所表示的存儲單元的void類型的值(i 表示的是地址,應該是個整數或指針類型變數)
『柒』 VOID是什麼意思
void是C語言中的一個關鍵字,字面意思是「無類型」,常用在程序編寫中對定義函數的參數類型、返回值、函數中指針類型進行聲明,有注釋和限製程序的作用。void *可以指向任何類型的數據,在C語言中,凡不加返回值類型限定的函數,就會被編譯器作為返回整型值處理。
void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。
void幾乎只有「注釋」和限製程序的作用,定義一個void變數沒有意義,不妨試著定義:
void真正發揮的作用在於:
1、對函數返回的限定
2、對函數參數的限定
『捌』 關於void的疑惑
比如函數 double s(int a)
他接受一個類型為int的值 返回一個類型為double的值
要有返回值 函數中就需要有 return 語句
用於返回一個值 給調用它的程序
函數沒有返回值 也就是void類型的 就不需要加return語句拉
『玖』 程序設計中遇到的void到底是什麼意思
1
概述
許多初學者對C/C++語言中的void及void指針類型不甚理解,因此在使用上出現了一些錯誤。本文將對void關鍵字的深刻含義進行解說,並
詳述void及void指針類型的使用方法與技巧。
2.void的含義
void的字面意思是「無類型」,void
*則為「無類型指針」,void
*可以指向任何類型的數據。
void幾乎只有「注釋」和限製程序的作用,因為從來沒有人會定義一個void變數,讓我們試著來定義:
void
a;
這行語句編譯時會出錯,提示「illegal
use
of
type
'void'」。不過,即使void
a的編譯不會出錯,它也沒有任何實際意義。
void真正發揮的作用在於:
(1)
對函數返回的限定;
(2)
對函數參數的限定。
『拾』 關於void
void dis();
void dis(void);
void作為函數修飾,表示沒有返回值,放在形參里,表示無參數,上面兩個是一樣的,都是無返回值無參數的函數dis
char dis(void);
表示返回值類型為char,無參數的函數dis