局部变量
生命周期:从定义开始到’}‘结束
作用域:从定义开始到’}'结束
#include <stdio.h>int main(void){int nums[10] = {0};for (int i = 0; i < 10;i++){//i的作用域开始nums[i] = i + 1;}//i的作用域结束return 0;}
全局变量
生命周期:从程序开始到程序结束
作用域:整个项目
test.c
#include <stdio.h>extern int i; //声明全局变量void Test(){printf("%d\n", i);}
main.c
#include <stdio.h>int i; //定义全局变量,全局变量默认初始化为0void Test();int main(void){int i = 520;Test(); // 输出 '0'printf("%d\n", i); //局部大于全局, 输出 '520'return 0;}
不同函数的变量无法相互访问
#include <stdio.h>int main(void){int i = 520;printf("before: %d\n", i);for (int i = 0; i< 10;i++) {i ++;}printf("after : %d\n", i);return 0;}
before: 520
after : 520