全局变量、静态本地变量、返回指针的函数
1.全局变量
- 定义在函数外部的变量是全局变量
- 全局变量具有全局的生存期和作用域
- 他们和任何函数都无关
- 在任何函数内部都可以使用他们
- 没有做初始化的全局变量会默认为0值,指针会默认为NULL值
- 只能用编译时刻已知的值来初始化全局变量
- 他们的初始化发生在main函数之前
- 如果函数内部存在与全局变量同名的变量,则全局变量被隐藏(就近原则)

2. 静态本地变量

- 在本地变量定义时加上static修饰符,如static int i; 则i就成为静态本地变量
- 函数调用结束时,静态本地变量会继续存在并保存其值
- 后续同一个函数继续调用时,静态本地变量会延续上一次调用的最终值
- 静态本地变量的初始化只会在第一次进入这个函数时做

- 静态本地变量实际上是特殊的全局变量,他们位于相同的内存区域
- 静态本地变量具有:全局生存期,局部作用域
3. 返回指针的函数
返回本地变量的地址是危险的,函数调用后本地变量的地址还在,但是里面的值可能变了,如:

返回全局变量或静态本地变量的地址是安全的
建议:


浙公网安备 33010602011771号