调用的参数太少了

时间:2016-11-10 21:36:09

标签: c pointers

我的老师不愿意帮我解决错误,所以我不知道还能去哪儿。在第19行,addition();,错误表示函数调用中的参数太少,我不确定为什么会这样。我是一名初学程序员,但之前我已调用过函数,因此我不确定为什么我现在遇到问题。

#include <stdio.h>

int addition(int *change);

int main(void)
{
    int num = 10;
    printf("Name \t Address \t Value\n");
    printf("%s \t %p \t %d\n", "num", &num, num);

    int *change = &num;
    printf("Change:  %p\n", change);

    *change = 100;
    printf("The value of num is %d \n", num);
    printf("The value of change is %d \n", *change);

    addition();

    return 0;
}

int addition(int *change)
{
    int input;
    int result = input + *change;

    printf("Input a value ");
    scanf("%d", &input);

    printf("The result will be change (%d) + input (%d)\n", *change, input);
    printf("Result: %d", result);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

也许这会更适合评论,但我缺乏发表评论所需的声誉......

当您调用函数时,通常需要提供一些信息。如果我向你走来并命令“加!”你可以回答“我应该添加什么?”这基本上就是您的错误消息告诉您的内容。您正在发出命令,但是您没有给它足够的信息来完成该命令。

您可以通过浏览其声明来查找函数所需的其他信息。在这种情况下,您的函数声明是:

addition(int *change)

意味着,为了正常运行,该函数需要一个指向整数(int *)的指针。每次调用加法函数时,都必须提供此参数,以便函数知道预期要添加的数字。