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

标签 c++ function variables

在下面的代码中,为什么必须在int readNumber()的主体中声明int nInteger,而必须声明int nAnswervoid 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 > 为其分配一个值> n整数。如果没有声明变量,那么您的程序将不知道在哪里存储您输入的值。

您可以将其想象成装苹果的篮子。你有一个篮子,但里面没有苹果,然后有人给你 2 个苹果,你把它放进篮子里。最后,return 语句的工作方式就像您将篮子交给其他人一样。

另一方面,函数 void writeAnswer 需要传递一个参数。正如您在声明的局部变量中看到的那样。它所做的只是简单地显示 "The sum is: PASSED_ARGUMENT"。所以基本上,如果你用数字 6 调用你的 writeAnswer 函数,比如 writeAnswer(6),它会写成 "The sum is: 6"

关于c++ - C++ 中的函数和变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29627941/

相关文章:

c++ - Boost asio async_accept 在 Windows 下工作,但在 FreeBSD 下失败。怎么了?

c++ - 由于 PROTOBUF 服务器中的字符串数据类型变量和客户端通过 cpp 中 recv 端的套接字进行通信而导致段错误

c - 从 C 代码创建函数的快速方法

python - 有没有办法获得装饰器包装的功能?

class - LESS中的动态类名称

c++ - 跟进: Boost serialized custom C++ object passed over ZeroMQ pull socket

c++ - 重载新的 friend 功能?

javascript - 如何在 Javascript 函数之间传递变量?

php - 需要重新格式化日期变量以匹配 mysql 中的日期函数

variables - 如何从另一个函数访问结构变量?