0

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

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

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

所以我的猜测是第二个应该是这样的:

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

和部分 b 作为 cout << "你的两个数字的乘积是 " << product(a,b);

首先,我是对的,无论哪种方式,将答案作为输出参数都意味着什么。当我在并且你觉得可怜我时,你能告诉我应该使用 void 而不是 int 吗?最后有人可以更好地解释通过引用返回究竟是什么。我得到了关于它的整个方面需要在参数的末尾有一个 & 并且“技术上”它允许我改变它而不是仅仅返回它,但我希望有更深入的东西?很抱歉这么需要,但任何帮助将不胜感激。谢谢琳达

PS我会标记为作业,但它已被弃用。对不起!

4

2 回答 2

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只会发生在函数内部,因此它不起作用。

希望这可以帮助!

于 2012-11-20T03:52:39.540 回答
0

您编写的函数计算产品并调用产品函数。你也可以像这样调用它。

int productOfAandB = 产品(a,b);

引用允许将调用者范围内的变量更改为被调用者。典型的例子是让 Bob 去更衣室换 PE,在这个过程中 Bob 只是去更衣室换衣服,然后告诉 Bob 这样做的过程继续使用改变后的 Bob。如果将 Bob 复制到更衣室,然后从更衣室返回,替换原来的 Bob,它的行为更像是一个返回值函数。

  1. 按值传递,按值返回 BOB = changForPE(BOB);// 这有效地将 BOB 替换为全新的 BOB
  2. Pass by Reference changeForPE(&BOB);// 这个函数有能力对存储在 BOB 的变量做一些事情 // 但它似乎没有覆盖 BOB 变量
于 2012-11-20T03:53:58.933 回答