假设我有这个功能:
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/