呼叫函式能帶回幾個返回值為什麼,一個呼叫函式能帶回幾個返回值,為什麼?

2021-04-12 18:06:58 字數 1780 閱讀 4465

1樓:匿名使用者

原則上不能,不過c++可以用tuple模擬。比如一個函式想返回一個int 兩個float可以返回tuple。然後可以直接回用一個答tuple接收結果,也可以直接用tuple的tie函式把內容賦值給別的變數。

這樣你可以通過ignore遮蔽不需要的結果比如foo()返回的是tuple,就可以foo().tie(ignore, a, b)。只獲取兩個float結果。

另一個方法是傳入指標或者引用引數,但相對來說麻煩。指標不好優化,寫著難看。引用一般情況下無法實現忽略某些結果的功能,如果實現的話會很難看而且麻煩。

2樓:__小東是

只能一個返回值,但你返回陣列可以看成多個返回值。

3樓:清雅之蘭向日葵

只能帶回一個返回值,因為在一個函式中只能中最終只能返回一條return語句

c++問題,呼叫有返回值和沒有返回值的函式,為什麼不同呢?

4樓:匿名使用者

#include

void show()

int main()

{std::cout<嗎?std::cout<的是show()執行之後返回的值,函式show()執行之後沒有返回任何版值,因此能權顯示什麼?

5樓:匿名使用者

一個函式

的函式名既是該函式的代表,也是一個變數。由於函式名變數通常用來把函式的處理結內果資料帶回給

容呼叫函式,即遞迴呼叫,所以一般把函式名變數稱為返回值。

函式可以有返回值,也可以沒有返回值。對於沒有返回值的函式,功能只是完成一個操作,而不能返回運算的結果。對於沒有返回值的函式,功能不僅是完成一個操作,還能返回運算的結果,功能更加強大。

例如:void funcplus(int a,int b)

int funcplusret(int a,int b)

如上所示:funcplus只完成了 a+b的運算,結果沒有返回,所以我們得不到計算的結果。

funcplusret,完成了a+b的運算,並且返回了結果,我們可以獲得結果。

6樓:匿名使用者

#,包括

無效bai

的show()

廉政的main()

/ /這可以跑你嗎內? std :: cout的「show()方法,顯示了容show()執行後的返回值的函式show()方法來執行不返回任何值,並因此能夠證明什麼呢?

7樓:匿名使用者

根據你的這兩個程式來說的話沒什麼區別,函式需不需要返回值要適情況而定的。專比如說當你在呼叫一屬個函式之後要確認它是否呼叫成功,那你就可以用一個int 或者 bool 型作為返回型別。然後在呼叫處進行判斷。

而如果不需要確認是否呼叫成功,又不需要用到被呼叫函式裡面的變數,那返回型別就可以是void 。 這樣說可以理解嗎??哈。。。

8樓:匿名使用者

#,bai包括

無效的show()du

廉政的main()

/ /這可dao以跑你回嗎? std :: cout的「show()方法,顯示了

答show()執行後的返回值的函式show()方法來執行不返回任何值,並因此能夠證明什麼呢?

9樓:匿名使用者

有返回值的函式可以賦值給一個變數。

沒返回值的函式不能賦值給一個變數。

10樓:匿名使用者

你除錯了?貌似第一段程式有問題吧,沒有返回值你想輸出什麼?函式地址?

c語言函式返回值,c語言的函式返回值?

這個跟庫函式的定義有關。還有就是編譯器的差異。有些編譯器預設是非0為真,有些非 1為真。建議不要使用這麼簡單粗暴的辦法判斷。請使用c提供的標準巨集判斷。在 學的。呃。自己寫 寫多了自然就知道了 根據你的程式來看應該是一個void型,不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的 而如果...

C 函式返回型別是引用的問題,C 函式返回值為引用型別時出錯!大神進!

引用就是變數的別名,返回c3的引用,返回的就是c3 c3被清除,再呼叫c3的函式,結果當然不正確 如果返回 i 後,i被清除,但是返回值已經被輸出了,結果是正確的 返回c型別,g函式返回 的是c型別的一個物件,雖然c3被清除,但是返回的物件還能呼叫get函式 你可以在c類中增加一個解構函式,除錯執行...

c函式返回值為引用型別時出錯大神進

我不是大神,但我大概知道你是怎麼回事。你的引數是const string 型別,首先你要知道string 前為什麼要加const.還有你要知道const物件和非const物件的區別在 物件前加const,則只能呼叫該物件的const方法,換句話說,不能對其進行任何內容上的修改。而傳 是因為要避免複製...