簡體   English   中英

返回函數結果作為“輸出參數”是什么意思?

[英]What does it mean to return a function result as an “output parameter”?

嗨,我希望我能更好地了解有關C ++的一些知識。 我們正在學習函數,我錯過了一堂課,我認為這是錯過的錯誤課,因為我很困惑。 關於明確簡潔的方向和術語理解,我有兩個問題。 這是我的第一個:

a)編寫一個名為“ product”的C ++函數,該函數計算傳遞給as的兩個整數值的乘積。 該函數將接受兩個輸入參數,並將計算出的答案作為函數的輸出參數返回。 b)編寫一行代碼來調用(調用)此函數。

這是第二個:a)編寫一個名為“ product”的C ++函數,該函數計算傳遞給as的兩個整數值的乘積。 該函數將接受兩個輸入參數,並返回該函數執行結果的乘積答案。 b)編寫一行代碼來調用(調用)此函數。

所以我的猜測是第二個應該是這樣的:

 int product(int a, int b)
 { return a*b; }

b部分作為cout <<“您兩個數字的乘積為<< << product(a,b);

首先我是正確的,無論哪種方式,返回答案都將作為輸出參數。 當我在時,您感覺很可憐,您是否可以告訴我我應該使用void而不是int,最后有人可以更好地解釋通過引用返回的確切含義。 我了解到它的整個方面都需要在參數的末尾帶有&,並且“在技術上”它允許我更改它而不是僅僅返回它,但是我希望更深入一點? 很抱歉這么需要,但是任何幫助將不勝感激。 謝謝琳達

PS我本來會標記為作業,但已棄用。 抱歉!

輸出參數是從函數返回數據的另一種方法。 從本質上講,您無需返回值,而是將返回答案的框發送給函數。 將答案放在框中會對其進行修改,並且可以在函數運行后從中獲取答案。

“標准”返回值(與您一樣):

int product(int a, int b)
{ return a*b; }

調用標准函數:

int answer = product(10, 5);
cout << answer << endl;

“輸出參數”:您無需在實際值中傳遞answer (例如5或3),而是在其中發送答案的框; 更改此框的內容也將更改main函數中變量的值(這表示為int & answer而不是int answer )。

void product_output_parameter(int a, int b, int & answer)
{ answer = a*b; }

調用函數:

int answer;
// send answer in as a place to put the answer
product_output_parameter(10, 5, answer);
// the value stored in answer has changed
cout << answer << endl;

如果函數是這樣定義的:

void product_output_parameter(int a, int b, int answer)
{ answer = a*b; }

answer的更改只會在函數內部發生,因此將無法正常工作。

希望這可以幫助!

您寫出的那些函數將計算出一個產品,並確實調用該產品功能。 您也可以這樣調用它。

int productOfAandB = product(a,b);

引用允許在被調用方的調用方范圍內更改變量。 典型的例子是將Bob送到更衣室進行PE更換,在此過程中,Bob只是去了更衣室並進行了更改,然后告訴Bob這樣做的過程將繼續使用更改后的Bob。 如果將Bob復制到更衣室中,然后從更衣室返回來替換原來的Bob,它的行為將更像是返回值函數。

  1. 按值傳遞,按值返回BOB = changForPE(BOB); //這將BOB有效地替換為一個全新的BOB
  2. 通過引用傳遞changeForPE(&BOB); //此函數可以對存儲在BOB上的變量執行某些操作//,但似乎不會覆蓋BOB變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM