日志十七
静态static:讲函数锁定在改源文件内,作用域为该源文件内,生命周期为整个程序运行时
如果没有说明静态,那就默认不是静态
自动变量:自动即与静态相反,一般默认为自动,可省略
局部变量:
只作用于函数内部,但并不代表生命周期只是函数执行时——静态局部变量(被static修饰)只作用于函数内部,但是生命周期为整个程序执行时(第一次调用函数时,在数据区申请空间,所以不存在栈区回收/每次调用重新定义重新分配空间导致每次都被初始化问题)
全局变量:
定义在函数外部,作用域为所有源文件,生命周期为整个程序运行时
如在main外部定义int a=1
静态全局变量:
定义在函数外部,作用域只为当前源文件,生命周期为整个程序运行时
如在main外部定义static int a=1
静态局部变量:
定义在函数内部,作用域为函数内,生命周期为函数执行时,在栈区分配空间,每次调用函数都会重新申请重新初始化