无论什么情况,C函数都将返回零

时间:2019-12-06 12:35:43

标签: c

因此,对于我的第一个C项目,我想从一个计算器开始简单,但是SUM的所有功能都是返回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;
}

1 个答案:

答案 0 :(得分:7)

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

然后,您将两个float加在一起,并返回了结果的 地址

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

您已调用未定义行为


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)
}

P.S。

您有一个名为SUM的函数(带有大写字母)和一个名为sum的带有小写字母的变量。尽管从技术上讲这是可以的,但如果另一个程序员读取您的代码,则可能会引起混乱。 您是否可以始终确保SumsumSUM之间的区别? SinesinesinSinSINE等呢?

您应该付出更多的努力来明确,明确地命名函数,变量,常量等,以便所有程序员都容易理解并在适当的上下文中使用适当的函数。