You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言函数内print输出hypo正确,外部获取返回值却为0的原因

问题原因及解决方法

核心问题

你在main函数中声明的hypo变量没有接收pythagorean函数的返回值,且该变量未初始化,它的初始值是内存中的随机垃圾值(显示为0只是偶然情况)。

看你代码里的这一行:

pythagorean(a, b);

这里虽然调用了计算斜边的函数,但没有把函数返回的结果赋值给main里的hypo变量,导致后续printf打印的是未初始化的垃圾值,而非函数计算出的正确结果。

解决方法

修改函数调用的代码,将返回值赋值给main中的hypo:

hypo = pythagorean(a, b);

修改后,main里的hypo就会被赋予函数计算出的斜边值,后续的printf就能正确输出结果了。

额外说明

C语言中,局部变量如果没有显式初始化,会包含未定义的垃圾值,使用这类变量会触发未定义行为,输出结果完全不可预测(这次显示0只是巧合),所以一定要确保变量在使用前被正确初始化或赋值。

内容的提问来源于stack exchange,提问作者PapaPumpkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:40:32