C ++中的函数和变量声明

时间:2015-04-14 12:57:12

标签: c++ function variables

在以下代码中,为什么必须在int nInteger的正文中声明int readNumber(),但int nAnswer必须在void writeAnswer()的()部分内声明?在()内声明int nInteger或在函数体内声明int nAnswer会导致IDE抱怨所述函数的参数太少。为什么会这样?

我在Windows 7上使用Code :: Blocks和附带的MinGW。

#include <iostream>

int readNumber()
{
    using namespace std;
    cout << "Please enter an integer: ";
    int nInteger;
    cin >> nInteger;
    return nInteger;
}

void writeAnswer(int nAnswer)
{
    using namespace std;
    cout << "The sum is: " << nAnswer << endl;
}

int main()
{

    int x;
    int y;
    x = readNumber();
    y = readNumber();

    writeAnswer(x+y);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

基本上,int readNumber()函数不需要传递任何参数。您声明了一个局部变量,因此该函数知道在哪里分配您键入的值。您声明变量int nInteger,然后在下一行中通过调用cin >> nInteger为其分配值。如果没有声明变量,那么您的程序将不知道存储您键入的值的位置。

你可以把它想象成苹果的篮子。你有一个篮子但没有苹果,然后有人给你2个放入篮子的苹果。最后,return声明就像你把篮子交给其他人一样。

另一方面,函数void writeAnswer需要传递参数。正如你所看到的那样,声明了局部变量。它的作用是简单地显示"The sum is: PASSED_ARGUMENT"。所以基本上如果你用#{1}}这个号码来调用你的writeAnswer函数,它会写writeAnswer(6)