C语言关于全局变量和局部变量的问题

2025-03-23 04:43:38
推荐回答(4个)
回答1:

“int b=0;"去掉时,int b=1;b是在任何函数(包括主函数)的外部定义的,属于全局变量,所以任何函数程序运行到这一行时给它分配了内存空间,进而所有函数都可以使用此变量,函数fun()函数对b的每一次累加值都被保存下来。“int b=0;"不去掉时,int b=1;b全局变量,“int b=0;"b局部变量,由于程序运行使用变量的就近原则,则函数fun()使用局部变量b,局部变量在函数调用完成时释放给局部变量分配的内存,即b的值在下一次调用函数是认为初始值0。就近原则同理,主函数中b则是全局变量b=1。

回答2:

在函数fun()中,因为也声明了变量b,所以对这个b的任何操作都是局部变量的b,与全局变量b没有任何关系。
而在主函数main()中,因为没有声明变量b,所以这里的b是全局变量的b。

回答3:

fun函数中定义的变量b=0是,这是表示在fun函数中b=0(局部变量即在fun函数中好使);而你在开始定义的变量b=1,是全局变量,所以若将函数fun中的定义“int b=0;"去掉,则程序的运行结果为4 12。

回答4:

int b=0;覆盖了int b=1;啊
就近原则