c語言中,函式返回值怎麼用,c語言中呼叫函式如何返回多個值?

時間 2021-12-27 15:48:25

1樓:り斑駁丶4129仉

一般用0表示函式執行正確,正常返回;用負數表示函式執行出錯,每個值可以提前定義,根據出錯的值進行出錯處理。

----------------

誠心為您解答每一個問題!

如您滿意請採納最佳!如有疑問請繼續追問!

您的好評是我們前進的動力,相互幫助,一起進步!

2樓:匿名使用者

return後接一個值。

在呼叫這個函式的函式裡面,呼叫它的時候希望獲得一個值,如果不希望獲得這個值的時候,用void宣告就好。如果需要,比如說需要得到一個整形值

就宣告int func()

在呼叫它的比如main裡面

func()的作用就可以相當於一個int型常數比如外面定義了

int max(int a,int b)

主函式裡面是

main()

這時候就是通過max計算 1>2 則return 一個1 ,1<2 則return一個2。很明顯1<2 所以這裡max(1,2)就會return 一個 2

這時候主函式裡的max(1,2)就相當於一個常數 2a=max(1,2)的作用就相當於a=2

這個意思。

3樓:淦海瑤

在c中任何函式都有返回值,這個是定下的,主函式也有返回值

返回值分幾個方面,逐個說一下

主函式的返回值,這個一般使用者用不到,程式執行的時候,系統會根據這個返回值來判斷程式的執行結果

不管定義神馬型別的返回值,在tc中預設為void型(這個可以省略),可以根據需要自己定義都可以。

vc中好像必須寫,要不然編譯系統提示出錯

子函式的返回值,分兩類

void,也就是在不需要子函式返回數值的時候用到。注意的是不需要不代表沒有返回值。呼叫成功返回1,不成功返回0,我好像在**看到過這個說法,我不確定

非void型,這個返回值型別根據定義來返回

值得注意的是,在子函式中,只要執行return一定結束子函式,不管後面有多少**

一些系統自帶的函式,如printf,scanf等,最好了解他的返回值

4樓:匿名使用者

根據你的程式來看應該是一個void型,

不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的

而如果你想輸出交換後的結果,就只接在函式裡面輸出,因為等出了這個函式,a和b的值是不會變的。

5樓:

所謂返回值,就是人們想要知道函式或者程式所得到 的結果而設計的函式或者程式結束時給出一個值。比如:我們編寫一個加法函式,肯定想知道加完過後的結果是什麼,那麼我們就指定這個結果為該加法程式的返回值。

關於返回值的返回:

1、函式呼叫語句本身代表其返回值:例如:fun(a);那麼「fun(a)」就是這個返回值。

2、可以把返回值存到對應型別的變數之中。例如:int a=fun(b);

3、返回值是多種多樣的,可以是各種各樣的,int short char double 等等,還可以是指標或者結構體。在資料結構的二叉樹部分,某一個函式的返回值是一個帶有兩個指標的結構體。

c語言中呼叫函式如何返回多個值?

6樓:八哥說科技

1、通過使用指標,在函式呼叫時,傳遞帶有地址的引數,並使用指標更改其值;這樣,修改後的值就會變成原始引數。

2、通過使用指標返回結果為:

3、通過使用結構:因為結構是使用者定義的資料型別;可以定義一個包含兩個整數變數的結構,並將更大和更小的值儲存到這些變數中,然後使用該結構的值。

4、通過使用結構返回結果為:

5、通過使用陣列,當一個陣列作為引數傳遞時,基地址將傳遞給該函式,因此無論對陣列副本所做的任何更改,都會更改為原始陣列。

6、通過使用陣列返回結果為:

7樓:娛樂小八卦啊

建立陣列,返回指標。

在要返回的兩個值型別相同時,可以用建立陣列的方式,將要返回的值存在陣列中,並返回陣列首地址,這樣就可以實現返回兩個值的效果。需要注意的是,要返回陣列首地址,那麼返回的值不可以是區域性變數,有如下幾種是可以的:

a) 使用靜態區域性變數儲存,並返回地址;

b) 使用全域性變數儲存,返回地址;

c) 函式中動態分配記憶體,並返回申請到的地址,此種方法需要注意,在使用後需要釋放;

d) 在引數中傳入陣列地址,並返回。即返回的實際上是主調函式中的變數地址。

擴充套件資料

通常我們希望通過函式呼叫使主調函式能得到一個確定的值,這就是函式的返回值。函式的返回值是通過函式中的 return 語句獲得的。return 語句將被調函式中的一個確定的值帶回到主調函式中,供主調函式使用。

函式的返回值型別是在定義函式時指定的。return 語句中表示式的型別應與定義函式時指定的返回值型別一致。如果不一致,則以函式定義時的返回值型別為準,對 return 語句中表示式的型別自動進行轉換,然後再將它返回給主調函式使用。

在呼叫函式時,如果需要從被調函式返回一個值供主調函式使用,那麼返回值型別必須定義成非 void 型。此時被調函式中必須包含 return 語句,而且 return 後面必須要有返回值,否則就是語法錯誤。

如果函式有返回值,那麼 return 語句後面的括號可以不要,比如「return(z);」等價於「return z;」。若不需要返回值則可以不要 return 語句。

需要強調的是,一個函式中可以有多個 return 語句,但並不是所有的 return 語句都起作用。執行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句後的其他語句就都不會執行了。

8樓:

在c語言中,返回多個值主要有兩種方式

一種就像一樓所說的,返回一個陣列。

但是這樣做的壞處在於

呼叫程式者並不知道這個陣列有多大,除非是某些只返回特定大小的函式,一般情況下不建議採用這種方法。

第二種是用指標返回,例項**如下。

void exam(int *t)

main()

如上**,你會發現這個t變成1了。

這是因為你傳的是指標(&是取址符),當然如果你還不知道什麼是指標,那麼就只能等你以後來實踐這種方法了。如我上面這樣的,是最簡單的一個應用。當然你也可以定義下面這樣的

exam(int d, int e, int *t, int *t1.....)

你可以把d,e當作普通引數,然後t和t1當引數返回。

當然你完全可以把這兩種方法混合起來用

比如 int exam(int *size)

這裡,返回一個int陣列,而size則用於告訴呼叫者返回的陣列的大小。

這樣就不會出現陣列越界的情況了。

當然如果是呼叫者誤操作,那是無法避免的情況了

9樓:匿名使用者

可以有很多方法實現

你可以不使用陣列,使用vector來做

std::vectorconvert(int a, int b)或者你可以在外面定義一個陣列,作為傳入引數void convert(int a, int b, int *c)main()

10樓:

指標,還可以用c++中的引用.引用雖說是c++的語法,但c的資料結構也一直在用.

還有一種方法就是反回一個結構體變數,用它可以返回多個值

11樓:匿名使用者

main()

int convert(int a, int b)

12樓:匿名使用者

主要你的主函式裡沒有輸出的語句呀

c語言中函式的返回值是什麼意思,是返回到**去?怎麼判斷?

13樓:day自律自強

一是返回給系統 return 0

二是你寫的這個函式主函式在呼叫時如果你返回了一個值 主函式就會得到這個值

c語言中函式呼叫與返回值的關係是什麼?

14樓:手機使用者

所謂函式返回值是一個函式在運算結束以後向呼叫它的母函式或者系統反饋一個回值答,這個值可以是各種變數型別.

舉個簡單的例子:

int add(int a,int b)

int main()

在主函式main中呼叫子函式add,並傳遞引數3和4過去,add經過運算後得到值7,通過return語句將得到的值返回給呼叫它的main函式供其使用,而在main中,返回值被用於給res賦值。

函式返回值就可以理解為解決一個問題以後得到的結論,把這個結論交給別人,就像寫在書上成為一個定理,來讓別人使用。

c語言返回值具體是指什麼,C語言中返回值是什麼意思?有什麼用?

返回值可以是包括指標在內的任何型別,一般跟所定義的函式型別一致,如果沒有返回值,函式型別應為void 比如一個計算一個數的絕對值的函式 返回值就是將這個數的絕對值返回的 返回值的作用就是返回一個值 c語言中返回值是什麼意思?有什麼用?5 說來話長。c語言中,首先,返回值是函式的返回值 然後,函式的函...

詢問C語言函式返回值的問題,詢問一個C語言函式返回值的問題。

可以確定啊,你看函式定義,首部就是返回值 函式名字 參數列列,你寫的是int fun 時,呼叫函式,當然返回的是int型的1,是你自己定義的。然後,fun 如果是呼叫語句,只能說明fun是指向函式的指標,返回值型別,是由定義的返回值型別所決定。比如你定義 int fun 那麼說明返回值是指向int型...

c語言中返回值是什麼意思?有什麼用

哀吉星 說來話長。c語言中,首先,返回值是函式的返回值 然後,函式的函式名被作為一個變數處理 最後,函式的處理結果資料帶回給呼叫函式作為返回值就被值賦給了 函式名 變數的。這個返回值可以用來判斷函式被呼叫後的執行處理結果,函式細緻的返回值可以判斷出在被呼叫中的走向流程。返回值可有可無。 蘇嘉愛娛樂 ...