我正在尝试函数内的scanf并将其输出到另一个函数。目前它输出不正确。我不知道我错过了什么

时间:2015-03-21 02:49:35

标签: c scanf

int read_number(int* value) {
    scanf("%d",&value);
    printf("%d\n",value);
}


int main() {
    int x=1;
    read_number(x);
    printf("%d",x);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

以下是您的代码应该如何:

int read_number(int *value) {
    scanf("%d", value);
    printf("%d\n", *value);
}


int main() {
    int x=1;
    read_number(&x);
    printf("%d", x);

    return 0;
}

将指针作为参数传递给函数,以便它可以取消引用指针并分配新值。

顺便说一下,最好不要使用不安全的scanf()。您应该使用fgets()sscanf()