значение указателя в main (), я получаю правильный вывод в функции - PullRequest
0 голосов
/ 28 марта 2019

Ниже приведен код, где я получаю адрес c в main () вместо значения:

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 Ответ

1 голос
/ 28 марта 2019

Вам не нужно передавать адреса a и b, потому что их значения не должны изменяться, а должны использоваться только. Вам нужно отменить ссылку c внутри вашей функции addtion, чтобы сохранить значение дополнения к тому, на что оно указывает:

#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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...