我们说我有这个功能:
void read() {
int num;
scanf("%d", &num);
}
我想在另一个函数中使用num变量:
void func() {
for (i = 0; i < num; i++)
printf("%d ", i);
}
但是当试图编译它时,该变量是未初始化的。我知道它很可能需要指针,但我无法掌握它。
答案 0 :(得分:2)
有两种方法可以做到这一点:
第一种方法要求您将返回类型更改为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);
}
答案 1 :(得分:1)
你应该func
,
void func(int num) {
for (i = 0; i < num; i++)
printf("%d ", i);
}
你还需要传递价值,
void read() {
int num;
scanf("%d", &num);
func(num);
}
答案 2 :(得分:0)
您可以将变量设置为全局和函数内部:
void func() {
int i;
for(i=0;i<num;i++)
printf("%d ", i);
}
答案 3 :(得分:0)
您并不总是需要指针 - 您只需返回值然后再使用它。
int read() {
int num;
scanf("%d", &num);
return num;
}
您现在可以存储函数返回的值以供将来使用,例如
void func() {
int num = read();
for (i = 0; i < num; i++)
printf("%d ", i);
}