c語言中的函式型別void什麼詳細意思

2021-03-07 04:02:35 字數 5489 閱讀 6962

1樓:非常可愛

void意思是主函式(main)的資料型別空返回值。

void的字面意思是「無型別」,void *則為「無型別指標」,void *可以指向任何型別的資料。

沒有返回值的函式:功能只是完成一個操作,應將返回值型別定義為void,函式體內可沒有return語句。

有返回值的函式:函式的最後會有一個返回值return,可以用來獲取該函式執行結果返回給該函式,讓外部呼叫該函式的。

擴充套件資料void的使用

示例:add ( int a, int b )int main(int argc, char* argv)

2樓:匿名使用者

haha~~

差別如下:

void function()

int function()

簡單說你要返回一個值的話,函式前面加那個值的型別;

你要返回的是一個陣列時前面加void就可以(當然這個陣列是你帶入的)!!

在main()函式錢一般加上void,因為它不需要返回任何值吧!!

有問題可以hi我,十點以後都可以~~

3樓:

c語言的資料型別分為:基本

型別,構造型別,指標型別,空型別(也稱無值型別):void基本型別又分為:整型:

integer,字元型:char,實型(也稱浮點型,包括單精度實型float和雙精度實型double),列舉型:enum

構造型別又分為:陣列型別,機構型別(結構體型別):struct,聯合型別(公用體型別):union

我現在舉個例子來說明一下void的作用,如下:

void fun1()

fun2()

main()

執行此程式編譯時會報錯,出錯語句為「i=fun1();」,因為fun1()在定義時候已經宣告為無返回值,因為fun1()前面有void存在,而在main()中語句i=fun1();的目的是將fun1()得返回值賦給i,這顯然自相矛盾,將i=fun1();改為fun1();,在編譯就沒錯誤了。j=fun2();語句為何沒有錯誤呢?因為沒有型別標示符的函式預設返回值是整型,在這裡fun2()種沒有return語句,函式返回時,怎麼會有返回值呢?

其實,系統編譯fun2()函式的最後會自動加上一個返回語句。

我參考我的教材寫的,希望你能看明白!

4樓:v族皇帝

你好,我是學這個專業的學生。 void指的是你的主函式(main)的資料型別,空返回值的意思是:在你所打的主函式末尾不需要返回數值,常見的資料型別還有int,它是整型的,也就是將你的函式中的所有數字都規定為整數,而不能識別小數,也就是會出現1.

5=1這種情況,而且int函式的末尾需要返回一個值來結束這個函式,如:return 0,而void函式則不需要,而且void對你的函式也沒有任何要求,所以叫空返回值,希望我的回答能為您解決您的困擾

5樓:匿名使用者

首先明確c語言的函式

兼有其他語言中的函式和過程兩個功能,依據此可以將函式分為有返回值函式和無返回值函式兩種(函式也可以按其他標準分為:標準庫函式、使用者自定義函式);

有返回值函式:這類函式被呼叫執行完後將向呼叫者返回一個執行結果,稱為函式返回值,如數學函式即屬於此類函式的;但是要注意:由使用者自定義的並且要返回函式值的函式必須在函式定義和函式說明中明確規定返回值的型別(如需要返回整型,用int符號說明);

無返回值函式:此類函式用於完成某項特定的處理任務,執行完後不向呼叫者返回執行結果,這類函式類似於其他語言的過程;由於函式無返回值,使用者在定義此類函式時可指定其函式返回值為「空型別」,說明符號為「void」(注意空型別的說明符不可省,不然系統會預設返回值為int型)

我知道的就是這些了,因為上學期剛學c語言,希望已經幫你解決了問題,呵呵,謝謝!

6樓:匿名使用者

比如說一個

方法int m()

那麼這個方法執行後有一個結果 就是int型別的如果是void m()

那麼這個方法只是執行大括號裡的內容 而沒有返回值簡單的說 第一個方法最後會得到一個數

第二個方法只是幹活 最後不一定會得到什麼

7樓:匿名使用者

概義:函式的返回值定義為void, 表示函式沒有返回值.

函式有int char double 等型別。「void」指定其函式返回值為「空型別」,。就是當中間過程。

好像化學中的催化劑。前後不改變。函式用了它處理函式後,只是利用,不求帶會結果。

8樓:匿名使用者

函式的返回值定義為void, 表示函式沒有返回值。

9樓:匿名使用者

標準c++是要求 main函式有返回值的

10樓:漢江大俠

表示此函式不需要返回值。

c語言中void什麼意思?具體怎麼用?

11樓:楓璽

void的字面意思是「無型別」,void *則為「無型別指標」,void *可以指向任何型別的資料。void只有「註釋」和限制程式的作用。void的作用在於對函式返回的限定和對函式引數的限定。

例如: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型別在c開發中常見的用法有2種:

1、作為函式的返回值,如void add(int x,int y);  表示該函式吳返回型別,不需要返回值。

2、使用void*指標來使用,比如作為函式的引數型別,如: int max(void* param);  -->此時的void*表示可以使用任何型別的引數進行轉換。如

int a = 10;   //普通型別

max((int)&a);

typedef structstr;  //結構體

str s1 ;

s1.a = 2;

max((str)&s1);

12樓:匿名使用者

void是是c語言的一個關鍵字,其含義為空。

在c語言中,單獨的void有兩種用途,均用於函式中。

1 用於函式返回值。

形式為void func_name(...);

代表函式沒有返回值。在這樣的函式中,呼叫return語句時,不需要也不可以有引數。

注意,寫成

func_nmae(...);

的形式,在部分編譯器中可以編譯成功,但並不是沒有返回值,而是有一個預設的整型(int)返回值的意思。

2 用於函式引數列表。

當函式沒有引數時,需要定義為

*** func_name(void);

的形式,表示本函式不需要任何引數。

注意,如果寫成

*** func_name();

的形式,與void不同,不是沒有引數,而是函式引數不定,可以接收任何長度的引數。

13樓:半清醒丶不言語

void的意思就是

1) 對函式返回的限定;

2) 對函式引數的限定。

無返回值函式:此類函式用於完成某項特定的處理任務,執行完後不向呼叫者返回執行結果,這類函式類似於其他語言的過程;由於函式無返回值,使用者在定義此類函式時可指定其函式返回值為「空型別」,說明符號為「void」(注意空型別的說明符不可省,不然系統會預設返回值為int型)

先給一個例子 定義函式

返回值 函式名(引數1,引數2,引數3,.......)

{內容}

int sum(int a,int b){

int c;

return c;

}其中第一個int是返回值 就是別的函式呼叫此函式時這個函式給他的一個值。

如果呼叫時不需要返回值,則函式寫為

void sum(int a,int b){....} 此時函式沒有返回值

如果不需要引數 則int sum(void){...}

此時void的意義為空,就是沒有引數的意思

如果都不要 則為void sum(void);

拓展資料:

中文翻譯為「無型別」。常用在程式編寫中對定義函式的引數型別、返回值、函式中指標型別進行宣告。

void的字面意思是「無型別」,void *則為「無型別指標」,void *可以指向任何型別的資料。

14樓:匿名使用者

.void的含義

void的字面意思是「無型別」,void *則為「無型別指標」,void *可以指向任何型別的資料。

void幾乎只有「註釋」和限制程式的作用,因為從來沒有人會定義一個void變數,讓我們試著來定義:

void a;

這行語句編譯時會出錯,提示「illegal use of type 'void'」。不過,即使void a的編譯不會出錯,它也沒有任何實際意義。

void真正發揮的作用在於:

(1) 對函式返回的限定;

(2) 對函式引數的限定。

我們將在第三節對以上二點進行具體說明。

眾所周知,如果指標p1和p2的型別相同,那麼我們可以直接在p1和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關鍵字的使用規則:

2 + 3 = 5

這說明不加返回值說明的函式的確為int函式。

補充:void 中文翻譯為"無型別"。常用在程式編寫中對定義函式的引數型別、返回值、函式中指標型別進行宣告。

void的字面意思是"無型別",void *則為"無型別指標",void *可以指向任何型別的資料。

在c語言中,凡不加返回值型別限定的函式,就會被編譯器作為返回整型值處理。但是許多程式設計師卻誤以為其為void型別。

在C語言中,int函式與void函式有什麼區別

1 作用不同 主函式copy 返值可以定義為兩種,int型或void型。區別在於int型main函式需要有返值,而void型則不需要。main函式返zhi值作用 每個c程式最終的目標是為了執行,也就是編譯成可執行檔案後,被執行。main函式的返dao值將被傳遞到主調程序中,主調程序可以通過返回值判斷...

c語言中的abs函式,c語言中的abs函式ifabsx1x21什麼意思abs不是返回絕對值嗎

這條語句意思是 如果x1 x2的絕對值等於1,則if的條件成立,此時表示式abs x1 x2 1 的值是1,即條件成立。意思就是判斷x1 x2的差的絕對是不是等於1唄 y zeros fftsize,1 y 20 log10 abs x1 subplot 3,1,2 在matlab中,這些語句都什麼...

c語言中函式返回型別和函式返回值

函式的返回值bai 通過return語句來執du行,即zhireturn後的變數或表示式的值dao 就為專該函式的返回值 你可以根屬據需要自定義返回什麼值 而返回值的型別是指該值你想要得到的型別,比如return a a的型別,你在函式體裡定義的是int a 但根據需要,你要的是一個float型的返...