将函数结果作为“输出参数”返回是什么意思?

时间:2012-11-20 03:41:33

标签: c++ function vocabulary

您好我希望能够更好地了解有关C ++的一些事情。我们正在学习功能,我错过了一个课程,我认为这是错误的课程,因为我很困惑。关于明确简洁的方向和对术语的理解,我有两个问题。这是我的第一个:

a)编写一个名为“product”的C ++函数,该函数计算传递给它的两个整数值的乘积。该函数将接受两个输入参数,并将计算出的答案作为函数的输出参数返回。 b)编写可用于调用(调用)此函数的单行代码。

这是第二个:a)编写一个名为“product”的C ++函数,它计算传递给它的两个整数值的乘积。该函数将接受两个输入参数,并返回作为执行函数的结果的产品答案。 b)编写可用于调用(调用)此函数的单行代码。

所以我的猜测是第二个意思是这样的:

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

和b部分为      cout<< “你的两个数字的乘积是”<<产物(A,B);

首先,我是正确的,无论哪种方式,返回的答案都是输出参数。 虽然我在,你觉得可怜我可以告诉我,我应该使用void而不是int,最后有人可以更好地解释通过引用返回的确切内容。我得到了整个方面,它需要有一个&在参数的最后和“技术上”它允许我改变它而不是仅仅返回它但我希望更深入一些东西?对不起,如此需要,但任何帮助将不胜感激。谢谢 林达

P.S。我会被标记为家庭作业,但它已被弃用。遗憾!

2 个答案:

答案 0 :(得分:1)

输出参数是从函数发送数据的另一种方法。基本上你不返回值,而是将函数发送到答案所在的框。将答案放在框中会修改它,并且在函数运行后可以从中获取答案。

“标准”返回值(正如您所做的那样):

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的更改只会在函数内部发生,因此无效。

希望这有帮助!

答案 1 :(得分:0)

您写出的功能是计算产品并调用产品功能。你也可以像这样调用它。

int productOfAandB = product(a,b);

Referecing允许将调用者范围内的变量更改为被调用者。经典的例子是将Bob送到更衣室以换取PE,在这个程序中,Bob只是进入更衣室并改变,然后告诉Bob这样做的程序继续改变的Bob。如果Bob被复制到更衣室,然后从更衣室返回,取代原来的Bob,它将更像是一个返回值函数。

  1. 按值传递,按值返回 BOB = changForPE(BOB); //这有效地用全新的BOB替换BOB
  2. 通过参考传递 changeForPE(&amp; BOB); //此函数能够对存储在BOB中的变量执行某些操作                  //但它似乎没有覆盖BOB变量