在 C 语言中,局部变量和全局变量是两种类型的变量,它们之间的区别主要是作用域和生命周期不同。
1.作用域:局部变量的作用域仅限于声明它的代码块,而全局变量的作用域是整个程序。
例如:
#include <stdio.h>
int global_var = 5; // 全局变量
void func() {
int local_var = 10; // 局部变量
printf("Local variable: %d\n", local_var);
printf("Global variable: %d\n", global_var);
}
int main() {
func();
printf("Global variable: %d\n", global_var);
return 0;
}
输出结果:
Local variable: 10
Global variable: 5
Global variable: 5
可以看出,在函数内部的局部变量 local_var 的作用域仅限于该函数,而全局变量 global_var 的作用域跨越整个程序。
2.生命周期:局部变量的生命周期仅限于声明它的代码块,在代码块执行完毕后自动释放。而全局变量在程序开始执行时创建,在程序结束时销毁。
例如:
#include <stdio.h>
int global_var = 5; // 全局变量
void func() {
int local_var = 10; // 局部变量
printf("Local variable: %d\n", local_var);
printf("Global variable: %d\n", global_var);
}
int main() {
func();
printf("Global variable: %d\n", global_var);
return 0;
}
输出结果:
Local variable: 10
Global variable: 5
Global variable: 5
可以看到,在函数执行完毕后,局部变量 local_var 的生命周期结束,而全局变量 global_var 的生命周期将在程序结束时终止。
总之,局部变量和全局变量之间的主要区别在于变量的作用域和生命周期。在编写程序时,需要根据实际情况正确使用局部变量和全局变量以确保程序的正确性和可维护性。