char szBuff[10] = { 0 };
scanf("%9s", szBuff);//最多读9个字符,防止溢出
全局变量尽可能不用
| 
 code  | 
 
  | 
 read execute  | 
 全局、静态  | 
| 
 data  | 
 init  | 
 read write  | 
|
| 
 read only  | 
 常量  | 
||
| 
 uninit  | 
 read write  | 
 全局、静态  | 
|
| 
 stack  | 
 
  | 
 read write  | 
 
  | 
| 
 heap  | 
 
  | 
 read write  | 
 
  | 
编译器分配变量的原则:
按同内存属性分配
定义如下几个全局变量,注释里是对应的地址。可以开到已初始化和未初始化的地址有一定差距。
int a; //0042AE64
int b; //0042AE68
int c=0; //0042AE78
int d=1; //00427CB8
char name1[4]; //0042AE6C
char name2[4]={0}; //0042AE7C
char name3[4]={1}; //00427CBC
作用域实际是编译器按C语言标准所规定的语法做出了限制
| 
 变量作用域  | 
 例子  | 
 变量的生命期  | 
| 
 块作用域  | 
 
  | 
 函数开始到函数结束  | 
| 
 函数作用域  | 
 参数和局部变量  | 
 函数开始到函数结束  | 
| 
 文件作用域  | 
 
  | 
 
  | 
| 
 进程作用域  | 
 全局变量  | 
 所处模块装载到所处模块卸载  | 
原文:https://www.cnblogs.com/Nutshelln/p/12702850.html