成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

C語言中的函數(shù)為什么只能有一個返回值輸出?怎么實現(xiàn)多個值輸出?

網(wǎng)友解答: C語言的return語句只能返回一個返回值,要返回多個值,有以下辦法:1.返回數(shù)組。前提條件是返回的多個數(shù)值具有相同的數(shù)據(jù)類型,不然也沒法放到一個數(shù)組里面。2.返回結(jié)構(gòu)體。前

網(wǎng)友解答:

C語言的return語句只能返回一個返回值,要返回多個值,有以下辦法:

1.返回數(shù)組。前提條件是返回的多個數(shù)值具有相同的數(shù)據(jù)類型,不然也沒法放到一個數(shù)組里面。

2.返回結(jié)構(gòu)體。前提條件是這多個數(shù)據(jù)有一定的內(nèi)在邏輯關(guān)系,不然強(qiáng)行定義一個結(jié)構(gòu)體,把一堆不相干的數(shù)據(jù)放一起,即便語法上沒問題,總覺得很別扭。

3.通過函數(shù)參數(shù)來返回多個返回值。需要把函數(shù)參數(shù)定義為指針形式。

int Funtion(int param1,int param 2,int* p1,double* p2,.....)

上面這個函數(shù),除了返回一個int,還能通過函數(shù)參數(shù)里面的兩個指針p1,p2分別返回一個int和一個double。

網(wǎng)友解答:

C語言函數(shù)只能有一個輸出,這是受當(dāng)時編程方法的影響。是一個歷史問題。在C語言發(fā)明前,大多數(shù)人還在用匯編語言的時候,那真的是百花齊放,啥樣都有。導(dǎo)致編程效率底下,bug層出,維護(hù)困難。所以有個大牛E.W.Dijikstra提出了一個革命性的思想,結(jié)構(gòu)化程序設(shè)計。在這個思想下提出了編程函數(shù)化的理念?;诖顺霈F(xiàn)了一系列的語言。C語言是其中一個發(fā)展最好的。就好像一個人生了一堆娃,其中一個當(dāng)了總統(tǒng)。但總統(tǒng)也來自同一個基因。關(guān)于C語言為何脫穎而出發(fā)展壯大不是我們這里討論的問題,就不深入講了(講下去可以寫本書)。

我們就講下為何函數(shù)為何只有一個輸出。其實都源于數(shù)學(xué)。數(shù)學(xué)的函數(shù)可以有多個變量,但只有一個結(jié)果。這其實是為了數(shù)學(xué)簡單化。編程也是一樣。這樣的編程結(jié)果明確,沒有亂七八糟的網(wǎng)狀關(guān)系。所以現(xiàn)在函數(shù)式編程還是一個很火的理念。

但是,你不得不承認(rèn),現(xiàn)實問題還是有很多不止一個輸出結(jié)果的情況。好在c語言還留了一個后門。叫指針操作。通過指針操作你可以輸出多個結(jié)果。這是C語言發(fā)展壯大的一個原因。也是現(xiàn)在C語言為人詬病的關(guān)鍵點。

現(xiàn)代編程語言大多拋棄了指針操作,但保留了多結(jié)果輸出。不過函數(shù)式編程的理念也沒有丟。也就是函數(shù)只有一個返回值,但這個返回值可以包含多個結(jié)果。

標(biāo)簽: