这是我遇到的问题的简化示例:
#include <stdio.h>
#include <stdlib.h>
void f2(int** a) {
printf("a: %i\n", **a);
}
void f1(int* a) {
f2(&a);
}
int main() {
int a = 3;
f1(&a); // prints "a: 3"
f2(???);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是,我想能够使用f2()两个main()和f1().
可以在不使用全局变量的情况下完成吗?
您需要将指针传递给指针,因此您需要创建一个指针,main()以便您可以获取其地址:
int main()
{
int a = 3;
int* aptr = &a;
f2(&aptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)