为什么将函数赋值给变量?将 int x, y 分配给 ReadNumber() 有什么意义?它是为了将函数的返回值存储在变量中吗?或者这只是传递参数的一种方式?
#include <iostream>
int ReadNumber()
{
using namespace std;
cout << "Enter a number: ";
int x;
cin >> x;
return x;
}
void WriteAnswer(int x)
{
using namespace std;
cout << "The answer is " << x << endl;
}
int main()
{
int x = ReadNumber();
int y = ReadNumber();
WriteAnswer(x+y);
return 0;
}
最佳答案
- “为什么他要把一个函数赋给一个变量?”
他没有。这个(注意括号):
// vv
int x = ReadNumber();
将返回值赋给x
。括号意味着该函数实际上被调用,或者函数体被执行。该函数末尾有 return x;
,因此它返回 x
的值,该值被分配给 x
- main 中的那个。请注意,main
中的 x
和 ReadNumber
中的 x
完全不同。
此外,您不能将函数分配给 C++
中的变量(您可以使用函数指针,但这是另一回事)
- “将 int x, y 赋值给 ReadNumber() 有什么意义?”
从ReadNumber
返回的值是一个临时值,它应该存储在某个地方。因此,这就是为什么在 main
中定义 x
和 y
的原因,以便它们每个都存储从 ReadNumber< 返回的值
。并且每个值都可以不同。
如果main
中没有x
和y
,则返回值不可用,根本无法访问。然后它们就被摧毁了。
- “它是为了将函数的返回值存储在变量中吗?或者这只是传递参数的一种方式?”
这里没有任何争论。参数写在方括号 ( ()
) 内,而这里,调用 ReadNumber
时没有这样的参数。所以是的,它们用于存储返回值。
WriteAnswer
处没有 return
,并且它被定义为 void
- 这意味着 - 没有返回值。这就是为什么没有这样的事情
int x = WriteNumber( X + y )
但请注意,这里 WriteNumber
有参数。只有一个,它是计算出的 x + y 的值。所以,就像:
int z = x + y;
WriteNumber( x );
关于c++ - 将函数分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6939663/