从C中函数的指针参数获取值

时间:2011-10-21 14:09:29

标签: c pointers parameters

当我开始在大学学习时,我们正在学习如何用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 个答案:

答案 0 :(得分:3)

只有一件大事:你忘了初始化a。否则,它看起来很好。

 int a = 0;
 addNumber(&a);

唯一的另一件事是你错过了main中的return语句。

答案 1 :(得分:0)

以下是一个可能更接近您所寻找的示例:

#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

答案 2 :(得分:0)

它会起作用。如果您将a初始化为某个值,它会更好。