main()中的指针值,正在函数中获得正确的输出

时间:2019-03-28 15:28:22

标签: c

下面是我在main()处获取c地址而不是值的代码:

int addtion(int *a, int *b, int *c) {
    c = *a + *b;
    printf("sum is :%d\n", c);
}

int main() {
    int a = 10;
    int b = 10;
    int c;
    addtion(&a, &b, &c);
    printf("%d\n", c);
}

1 个答案:

答案 0 :(得分:1)

您不需要传递ab的地址,因为它们的值不被更改,而仅被使用。您需要在c函数中取消引用addtion,以将adding的值保存到其指向的内容中:

#include <stdio.h>

void addtion(int a, int b, int *c) {
    *c = a + b;
    printf("sum is :%d\n", *c);
}

int main() {
    int a = 10;
    int b = 10;
    int c;
    addtion(a, b, &c);
    printf("%d\n", c);
}

最后一点,您的addition函数似乎未返回任何值,因此请考虑使用void