//未整理,先记录
1、凡是在{}以内的变量称为局部变量,也包括形式参数
凡是在{}以外的变量称为全部变量
2、作用域的概念
{}以内的作用域称为局部作用域,主要包含的是变量
{}以外的作用域称为全局作用域,一类是变量,一类是函数
同一作用域内,不可以用重名的标识符
3、局部变量的作用域,起始于定义处,直到所在的大括号结束。
全局变量的作用域,起始于定义处,直到本文件的结束。
4、作用域叠加,指的是,全局变量同局部变量的作用域叠加
在不同的作用域,可以有重名的标识符,局部变量会覆盖全局变量的作用域
更小的作用域,只能用于再次划分局部作用域
5、全局命名污染
6、函数的生命周期,起于调用,结束于调用结束
局部变量的生命周期,起于调用,结束于调用结束
main开始 == 进程的开始, main函数的结束 == 进程的结束
全局变量的生命周期,起始于main函数的调用,结束于main函数的调用结束,等价于进程的生命周期
7、auto (大将军)只能用于修饰局部变量,表示该变量存储于栈stack上
存储于栈上的数据特点:随用随开,用完即消
默认的局部变量,就是auto类型的,所以通常将其省略
在C中将其忘记即可,C++ 中再讨论别的作用
8、register (小太监) 只能修饰局部变量。存储于cpu的一个变量,速度很快,但数量有限,所以通常被优化
使用场景:频繁使用的变量,避免cpu和内存之间频繁交互,
一般不用,将其忘记
9、extern (通关文牒),只能用来修饰全局变量。
C语言,是单文件编译的,然后再将编译的 .o文件同库一起链接成可执行文件。正
是因为这一点,跨文件使用全局变量,需要声明。
10、变量的声明与定义,现在要区分了
extern是可以省略的,但是不建议省略。



