首页 > 代码库 > 习题5-15

习题5-15

在函数内部定义的普通局部变量和静态局部变量在功能上有何不同?计算机底层对这两类变量做了怎么样不同的处理,导致了这种差异?

答:局部作用域中静态变量的特点:它不会随着函数每次调用而产生一个副本,也不会随着函数返回而消失,定义是未指定初值的全局变量会被以0初始化;局部作用域中的全局变量诞生于声明点,结束于声明所在的块执行完毕之时,如果没有指定初值则初值不确定。

普通局部变量存放于栈区超出作用域后,变了被撤销,其所占用的内存也被收回;静态局部变量存放于静态数据存储区,全局可见,但是作用域是局部作用域,超出作用域后变量仍然存在。

习题5-15