将函数赋值给变量

时间:2011-08-04 10:18:22

标签: c++

为什么要为变量赋值?将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;
}

7 个答案:

答案 0 :(得分:3)

  • “他为什么要为变量分配函数?”

他没有。这(注意括号):

//                vv
int x = ReadNumber();

将返回的值分配给x。括号表示实际调用函数 - 或执行正文。该函数最后有return x;,因此它返回x的值,该值分配给x - 主要的值。请注意,x中的mainx中的ReadNumber完全不同。

另外,你不能将函数赋值给C++中的变量(你可以使用函数指针,但这是另一回事)


  • “将int x,y分配给ReadNumber()有什么意义?”

ReadNumber返回的值是临时值,应存储在某处。因此,这就是为x定义ymain的原因,以便每个ReadNumber存储从main返回的值。每个值都可以不同。

如果在x中没有y(),则返回的值无法使用,根本无法访问。他们被摧毁了。


  • “是否将函数的返回值存储在变量中?或者这只是传递参数的一种方法?”

这里没有任何争论。参数写在括号内(ReadNumber),这里,调用WriteAnswer时没有。所以是的,它们用于存储返回的值。


return在和处没有void,并且它被定义为int x = WriteNumber( X + y ) - 这意味着 - 没有返回值。这就是为什么没有这样的事情

WriteNumber

但请注意,这里x + y有争论。只有一个,它是计算出的int z = x + y; WriteNumber( x ); 的值。所以,就像:

{{1}}

答案 1 :(得分:2)

是的,它存储了函数的返回值。

代码首先调用ReadNumber函数两次。 ReadNumber从控制台读取一个字符串,然后将其作为int返回。代码存储两个函数返回。然后它将这两个数字相加并将其作为参数传递给WriteAnswer函数。 WriterAnswer函数获取传入的参数并将其打印出来。

答案 2 :(得分:0)

int x = ReadNumber();

通过这个语句,程序员想要将该函数的返回值赋给变量。如果检查函数签名,则可以看到它返回类型int的值。

答案 3 :(得分:0)

ReadNumber()从标准输入中读取一个数字并将其返回。

int x = ReadNumber();

将该值存储到x

答案 4 :(得分:0)

他没有分配函数/方法本身,而是分配结果......

他将方法的两个连续调用的结果:ReadNumber()分别分配给变量x和y。

因此,ReadNumber()的返回值是指定的值。

请参阅ReadNumber()的返回类型是int - 与要分配的变量的类型相同。

我评论了下面的方法,以便更清楚:

int ReadNumber()
{
    using namespace std;

    cout << "Enter a number: "; // This line prints the command to the standard output

    int x;

    cin >> x;   // This line reads a number and assigns it to x

    return x; // This line returns the number and ends the method...
}

答案 5 :(得分:0)

实际上该功能未分配给变量

每次调用ReadNumber()时会发生什么,它会返回一些类型int。这个数字可以在任何地方使用,例如放入x之类的变量,我们可以再次调用它并将下一个值分配给另一个变量,如y

答案 6 :(得分:0)

ReadNumber()的结果被分配给x - 而不是相反。 ReadNumber()向用户询问一个数字并将其分配给x,然后分配给另一个数字并将其分配给y。然后main()将它们添加到一起并使用WriteAnswer()显示用户。