普通局部变量与static局部变量的区别 内存分配和释放 1、普通局部变量只有执行到变量定义的语句的时候才分配空间。 2、static局部变量在编译阶段(函数还没有执行),变量的空间已经分配。 3、普通局部变量离开作用域{},自动释放其空间,也就无法使用此变量。 4、static局部变量只有在整个程序结束的时候才将其自动释放。 初始化 1、普通局部变量不初始化,为随机值。 2、static局部变量不初始化,为0。 3、static局部变量初始化语句只有第一次执行时有效,但是可以赋值多次。 4、static局部变量只能用它常量初始化。