C中什么情况下把局部变量定义为局部静态变量
Posted 狂奔VS蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C中什么情况下把局部变量定义为局部静态变量相关的知识,希望对你有一定的参考价值。
首先要说明,数组不是变量;C中称它是具有相同类型元素的集合,严格说来它是一种简单的数据结构——这是题外话。定义在函数中的自动型(就是不用static修饰)数组,函数被调用时才创建,而函数结束后就自动销毁了,那么函数执行过程中对它的操作就白费了。
定义成static型后,编译时就为其分配内存空间并永久性保留着,直到程序结束,函数对它的操作就不会丢失了。知道这个原理后,也就知道并不是函数中的数组都得定义成static型,比如操作结果是在屏幕上显示数组内容,那在函数里作显示,这就不必用static了……
如果你希望在一个函数中对一个变量只执行一次初始化,以后不再初始化,使用上一次结果,就应该使用静态局部变量。
例如: static int n;
其他类型都可以。
解决方案二:
比如说你要在局部计算一个圆的半径,那么你可以将PI的值申请为static,因为PI以后再也不会变更了!希望能够帮到你!
解决方案三:
static修饰的变量,可以在任何地方通过类名::变量名的方法访问他的值,比如你要统计一个类创建的次数,就可以给这个类 写个static的变量用来计数
解决方案四:
加了static只不过是存储的位置不一样了而已,跟是否局部变量没关系,当然,全局变量加不加static都一样。
以上是关于C中什么情况下把局部变量定义为局部静态变量的主要内容,如果未能解决你的问题,请参考以下文章