为什么这里不使用函数参数?

Zak*_*aku 0 c++ parameters arguments

我正在阅读本教程: https://www.learncpp.com/cpp-tutorial/how-to-design-your-first-programs/ 我注意到作者没有在此函数中使用参数:

int getUserInput()
{
    std::cout << "Enter an integer ";
    int input{};
    std::cin >> input;

    return input;
}
Run Code Online (Sandbox Code Playgroud)

做这样的事情可以吗?

int getUserInput(int input)
{
    std::cout << "Enter an integer ";
    std::cin >> input;

    return input;
}
Run Code Online (Sandbox Code Playgroud)

Mil*_*nek 6

它会起作用,但没有多大意义。

您的函数的第一个版本的使用方式如下:

int some_number = getUserInput();
Run Code Online (Sandbox Code Playgroud)

这就说得通了; 调用者没有向该函数提供任何输入,因此它不需要任何参数。


但第二个版本需要一个参数,因此调用者必须提供它。但该函数实际上并没有对该值执行任何操作。以下所有行为完全相同:

int some_number1 = getUserInput(0);
int some_number2 = getUserInput(123456);
int some_number3 = getUserInput(some_number2);
Run Code Online (Sandbox Code Playgroud)

调用者向函数提供参数是没有意义的,因为函数根本不使用它。