Получение значения из параметра указателя функции в C - PullRequest
1 голос
/ 21 октября 2011

когда я начинаю учиться в университете, мы учимся писать на C, и мы дошли до того, что я узнал, что я могу использовать указатели в качестве параметров функции, но они не сказали нам, как получить ценность от этого. Я не способен как человек, который не знает о C так много, придумать другое решение, чем использовать два параметра (один в качестве указателя на переменную и другой в качестве значения. Смотрите пример, который не является реальным кодом, но это просто с целью демонстрации:


int main(int argc, char* argv []) {

     int a;
     addNumber(&a);


}

void addNumber(int * a) {
     *a = *a + 1; // this obviously does not work
}


Любой вклад будет оценен. Спасибо!

Ответы [ 3 ]

3 голосов
/ 21 октября 2011

Только одна важная вещь: вы забыли инициализировать a. В остальном выглядит нормально.

 int a = 0;
 addNumber(&a);

Единственное, что вам не хватает, это выражение return в main.

0 голосов
/ 21 октября 2011

Это будет работать.Это будет работать лучше, если вы инициализируете a некоторым значением.

0 голосов
/ 21 октября 2011

Вот пример, который может быть ближе к тому, что вы ищете:

#include <stdio.h>

void increment(int *a, int *b)
{
    *a = *a + *b;
}

int main(void)
{
    int sum = 5;
    int increment_by = 7;
    printf("sum: %d, increment_by: %d\n", sum, increment_by);
    increment(&sum, &increment_by);
    printf("sum: %d, increment_by: %d\n", sum, increment_by);

    return 0;
}

вывод:

$ ./bar
sum: 5, increment_by: 7
sum: 12, increment_by: 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...