c - 如何保存 C 函数中读取的变量?

标签 c function pointers save

假设我有这个功能:

void read() {
    int num;
    scanf("%d", &num);
}

我想在另一个函数中使用 num 变量,如下所示:

void func() {
    for (i = 0; i < num; i++)
        printf("%d ", i);
}

但是当尝试编译时,它说变量未初始化。我知道它很可能需要指针,但我无法掌握它。

最佳答案

有两种方法可以实现此目的:

  • 将您读取的变量返回给调用者,或者
  • 让调用者为您的变量提供空间,并将其存储在那里。

第一种方法要求您将返回类型更改为 int:

int read() {
    int num;
    scanf("%d", &num);
    return num;
}

void func() {
    int num = read();
    for (i = 0; i < num; i++)
        printf("%d ", i);
}

第二种方法需要您使用一个 int* 指针:

void read(int* p) {
    scanf("%d", p);
}

void func() {
    int num;
    read(&num);
    for (i = 0; i < num; i++)
        printf("%d ", i);
}

关于c - 如何保存 C 函数中读取的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297663/

相关文章:

c - 加载自定义图像格式 C/C++ 二进制

c - 如何将 C 代码转换为汇编的十六进制表示形式?

C函数原型(prototype)编译错误

Swift 相当于字符串文字接口(interface)吗? - `request(method: ' 帖子'|'put')`

c++ - Qt 写入 QTextStream 指针

c++ - 由于 LARGEADDRESSAWARE 检测指针算术

c - 从二维字符数组指针获取字符,该指针是 C 中结构指针的属性

C - 使用函数填充(获取)数据。最好通过引用或复制(在微 Controller 环境中)?

python - Python 中更节省内存的结构表示?

c - boolean 函数错误