为什么我返回函数时得到“1”?

问题描述 投票:0回答:1

我对编程和 C++ 非常陌生,所以我确信对于比我更有经验的人来说,这是一个超级简单的问题。但是,唉,我是新手,所以这是我的问题:

我正在尝试构建一个非常简单的函数,它接受两个数字作为参数(例如:下面函数中的 number1 和 number2),然后将值的总和返回给函数。

但是,当我稍后在“int main()”函数中调用我的函数时,我没有得到输入“5”和“4”作为两个参数值所期望的结果。我得到“1”...我看到这是某些东西未按预期正常工作的迹象。

但是,我的问题是我做错了什么?如果有人能解决这个问题(我相信这里的每个人都很可能能解决这个问题,哈哈),我将非常感谢你!

这是我的代码:

#include <iostream>

int return_numbers(int number1, int number2) {
    int sum;

    sum = number1 + number2;
    return sum;
}

int main() {
    std::cout << "Hi" << "\n";

    return_numbers(5, 4);
    std::cout << return_numbers <<"\n";
}

(PS:我添加打印语句只是为了看看它是否是主函数中的错误或其他错误,但这有效;所以,我假设“return_numbers”函数有问题。)

c++ function return return-type
1个回答
0
投票

您的代码在

main()
函数中存在一个小问题。当您调用
return_numbers(5, 4)
时,您并未捕获或使用返回值。相反,您尝试打印函数本身,这不是您想要的。

这是代码的更正版本:

#include <iostream>

// Function to return the sum of two numbers
int return_numbers(int number1, int number2) {
    int sum;
    sum = number1 + number2;
    return sum;
}

int main() {
    std::cout << "Hi" << "\n";

    // Correctly call the function and store the result
    int result = return_numbers(5, 4);

    // Print the result
    std::cout << result << "\n";

    return 0;
}

变更说明:

  1. 捕获返回值:

    int result = return_numbers(5, 4);
    

    此行使用参数

    return_numbers
    5
    调用
    4
    函数,并将返回的总和存储在变量
    result
    中。

  2. 打印正确的值

    std::cout << result << "\n";
    

    此行打印

    result
    的值,即
    5
    4
    的和。

当您运行程序的修正版本时,您应该看到输出:

Hi
9

要点:

  • 函数调用和捕获:如果需要使用函数,请始终捕获函数的返回值。
  • 打印变量,而不是函数:确保打印保存结果的变量,而不是函数本身。后者会打印函数的地址或给出错误。

补充说明:

  • 如果只想直接打印结果而不将其存储在变量中,可以这样做:
    std::cout << return_numbers(5, 4) << "\n";
    
    这将调用该函数,获取结果,并立即打印它。

现在您的程序应该按预期工作,并为您提供两个数字的正确总和。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.