📅  最后修改于: 2023-12-03 14:39:39.991000             🧑  作者: Mango
在函数中定义的局部变量与在函数外定义的全局变量有何区别?
在函数中定义的变量为局部变量,其作用域限制在声明的函数内部。在函数内部,可以通过变量名使用局部变量。
#include <stdio.h>
int main(){
int a = 1; // 在 main 函数中定义了一个局部变量 a
printf("%d\n", a); // 输出 1
return 0;
}
在函数外部定义的变量为全局变量,其作用域可以扩展到整个程序。在程序中任何一个函数都可以通过变量名使用全局变量。
#include <stdio.h>
int a = 1; // 在函数外部定义了一个全局变量 a
int main(){
printf("%d\n", a); // 输出 1
return 0;
}
局部变量的作用域局限于函数内部,只能在函数内部使用;全局变量的作用域可以扩展到整个程序,任何函数都能使用。
局部变量只在函数的执行期间存在,函数结束时会销毁;全局变量直到程序运行结束才会销毁。
局部变量可以在函数内定义初始化,也可以不初始化;全局变量必须在文件外定义初始化,否则默认为0。
在函数中定义的变量名称与全局变量名称相同,函数中使用的变量为局部变量,而非全局变量,这是因为函数中的局部变量具有更高的作用域优先级。
#include <stdio.h>
int a = 1; // 在函数外部定义了一个全局变量 a
int main(){
int a = 2; // 在 main 函数中定义了一个局部变量 a
printf("%d\n", a); // 输出 2
return 0;
}
函数内定义的变量为局部变量,作用域只限于函数;函数外定义的变量为全局变量,作用域可以扩展到整个程序。在函数中定义的变量名称与全局变量名称相同时,函数中使用的是局部变量。局部变量的作用域在函数执行期间,全局变量的作用域扩展到整个程序周期。