以下c代码有什么问题打印垃圾值?

Sus*_*mar -1 c

#include <stdio.h>

int sum(int x,int y)
{
    int add;
    add=x+y;
    printf("\nadd=%d",add);
    return add;
}

int main()
{
    int a,b;
    a=1;b=2;
    sum(a,b);
    printf("\nsum=%d",sum);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:
add = 3
sum = 4195760

这里有什么不对,为什么返回的添加是在main函数中打印一个垃圾值.

Bha*_*waj 5

sum(a,b);
Run Code Online (Sandbox Code Playgroud)

这是问题您正在打印函数的值(指向函数的指针,垃圾值)而不是具有总和值的变量!你应该用int ans=sum(a,b);printf("%d",ans);它来给你想要的答案