C++函数return语句实现疑问:调用add函数无法返回sum值是何原因?
问题解答
你的add函数中return语句的实现完全正确,函数本身已经成功返回了sum的值,无法看到返回结果是调用逻辑的问题,具体原因如下:
核心原因
return的作用是将计算结果返回到函数被调用的位置,并不会自动将结果打印到控制台。你调用add(num1, num2);时没有对返回的结果做任何接收或使用操作,这个值会被直接丢弃,因此你看不到计算结果。
替换为cout后正常运行的原因
cout << sum << endl;的功能是直接向控制台输出内容,你把return sum替换成输出语句时,相当于在add函数内部直接完成了结果打印,不需要将值回传给main函数做后续处理,所以能直接看到结果,但这和return的功能完全不同:
return:将值传回调用该函数的上层代码,供后续逻辑使用cout:仅向控制台打印内容,不会向上层代码传递值
正确的调用方式
如果要使用add函数返回的结果,有两种常用写法:
- 定义变量接收返回值后再处理
int result = add(num1, num2); cout << result << endl;
- 直接将函数调用作为表达式输出
cout << add(num1, num2) << endl;
完整可运行示例
#include <iostream> using namespace std; int add(int x, int y) { int sum = x + y; return sum; } int main() { int num1, num2; cout << "enter" << endl; cin >> num1 >> num2; int result = add(num1, num2); cout << "计算结果为:" << result << endl; return 0; }
内容的提问来源于stack exchange,提问作者Atharva Patil
相关产品推荐
相关产品推荐

