[英]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)
例如writeAnswer(6)
,它将写入"The sum is: 6"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.