c - 我正在尝试在一个函数内执行 scanf 并将其输出到另一个函数。目前它无法正确输出。我不确定我错过了什么

标签 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;
}

最佳答案

您的代码应如下所示:

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()

关于c - 我正在尝试在一个函数内执行 scanf 并将其输出到另一个函数。目前它无法正确输出。我不确定我错过了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178706/

相关文章:

c - 为什么在Eclipse中的printf之前执行scanf?

c - 确定 sscanf 是否使用 %*s 读取任何内容

从 void* 转换为 struct

c - 在 C 中读取包含 long 数组的文件

c - 解释一下这个程序中的esp-ebp

c - C 中的 "str"- "str"如何工作?它们是如何存储的?

c - 在 C 中,如何限制此 scanf 将采用的可接受值?

input - 为什么scanf的输入总是0?

c - 是否可以在 C 中重复使用 opendir?

c - C中指针运算加减错