C 函数无论如何都返回零

-5 c

所以,对于我的第一个 C 项目,我想从一个简单的计算器开始,但函数SUM所做的只是 return 0.00000。

#include <stdio.h>

int SUM (float n1, float n2);

int main() {
    float num1 = 0; 
    float num2 = 0;
    float res = 0;
    scanf("Enter 2 numbers: %f %f", &num1, &num2);
    res = SUM(num1, num2);
    printf ("%f", res);
}

int SUM (float n1, float n2) {
    float sum = n1+n2;
    return &sum;
}
Run Code Online (Sandbox Code Playgroud)

abe*_*nky 7

您声明该SUM函数将返回一个整数值 ( int)。

然后你把两个floats相加,返回结果的地址。

a 的地址float与 an 的值完全不同int。

您已经调用了Undefined Behavior。


float SUM (float n1, float n2);   // SUM should return a float.


float SUM (float n1, float n2) {
    float sum = n1+n2;
    return sum;                   // Return the sum (without any addresses)
}
Run Code Online (Sandbox Code Playgroud)

聚苯乙烯

您有一个名为SUM(用大写字母)的函数和一个sum用小写字母命名的变量。虽然这在技术上是可以的,但如果其他程序员阅读您的代码可能会造成混淆。你可以总是一定的区别的Sum,sum,SUM?怎么样Sine,sine,sin,Sin,SINE,等?

您应该付出额外的努力,清楚明确地命名您的函数、变量、常量等,以便所有程序员都能轻松地在适当的上下文中理解和使用适当的名称。