🌂首先有这样几种情况:
①main函数在栈区开辟的内存,所有子函数均可以使用;
②main函数在堆区开辟的内存,所有子函数均可以使用;
③子函数在栈区开辟的内存,子函数1和2均可以使用,但main不可以;
④子函数1在堆区开辟的内存,main、子函数1和2都可以使用;
⑤子函数2在全局区开辟的内存,子函数1和main均可以使用;
具体的解释在下面这串代码中的注释讲的很清楚!!!
#include<stdio.h>
void fun_1();
void fun_2(int n);
int g_a = 10; //全局区数据在main、子函数1和2中都可以使用
int main()
{
int a = 10; //在main和子函数1和2中都可以使用
fun_1();
}
void fun_1(){
int a = 10; //在main函数中不可以使用,在子函数1和2中可以使用
fun_2(a);
}
void fun_2(int n){
printf("%d\n",n);
}