C++ 中的函数和变量声明
Functions and variable declaration in C++
在下面的代码中,为什么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;
}
所以基本上 int readNumber() 函数不需要传递任何参数。你声明了一个局部变量,这样函数就知道在哪里分配你输入的值。你声明变量 int nInteger
,然后在下一行调用 cin >> nInteger
给它赋值。如果没有声明变量,那么您的程序将不知道在哪里存储您输入的值。
你可以把它想象成一个装苹果的篮子。你有一个篮子,但里面没有苹果,然后有人给你 2 个苹果,你把它放进篮子里。最后 return
语句就像你把篮子给别人一样。
函数 void writeAnswer
另一方面需要传递参数。正如您在声明的局部变量中看到的那样。它所做的只是简单地显示"The sum is: PASSED_ARGUMENT"
。所以基本上如果你用数字 6 调用你的 writeAnswer 函数,比如 writeAnswer(6)
它会写成 "The sum is: 6"
.
在下面的代码中,为什么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;
}
所以基本上 int readNumber() 函数不需要传递任何参数。你声明了一个局部变量,这样函数就知道在哪里分配你输入的值。你声明变量 int nInteger
,然后在下一行调用 cin >> nInteger
给它赋值。如果没有声明变量,那么您的程序将不知道在哪里存储您输入的值。
你可以把它想象成一个装苹果的篮子。你有一个篮子,但里面没有苹果,然后有人给你 2 个苹果,你把它放进篮子里。最后 return
语句就像你把篮子给别人一样。
函数 void writeAnswer
另一方面需要传递参数。正如您在声明的局部变量中看到的那样。它所做的只是简单地显示"The sum is: PASSED_ARGUMENT"
。所以基本上如果你用数字 6 调用你的 writeAnswer 函数,比如 writeAnswer(6)
它会写成 "The sum is: 6"
.