1.
auto存放在动态存储区,随生命周期结束而释放
static存放在静态存储区,在程序运行期间不会释放
2.
auto定义的变量每调用一次函数就初始化一次,每次调用会重新赋初值
static定义的变量只初始化一次,多次调用不会重复赋初值
3.
auto不赋初值为随机数
static不赋初值默认为0
总结
auto修饰的变量存放在动态存储区中的栈区,随着函数的调用与结束由系统自动开辟与释放,当全局变量static与局部变量auto冲突时,变量取局部变量的值
static可以将变量存放至静态存储区来延长变量的生命周期,但同时也会限制其作用域,限制其定义的变量仅可在当前文件中使用