C语言,请问 如果一个函数中我定义一个局部static字符数组,如果我不停的调用这个函数。

那请问这个函数每次使用的这个数组在内存上是同一块地址码?还是每次重新分配一个新的地址,上次调用的地址 作为静态内存,不释放呢。

static静态变量分配在全局变量(静态变量)区内,这是在编译环节中就会确定的。
如果在程序的一个函数中定义一个局部static字符数组的话,那么这个static字符数组的生存期是整个程序运行时期,即在一个程序运行周期内,它使用的都是同一块地址而且是同一个物理地址。

程序结束后,自动释放。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-22
每次调用,可能地址不同,这要看程序设置与进程的变化,并不是一个固定值。
在同一程序中调用,虽地址没变,但其作用域随调用结束而结束,它占据了空间,但并不被其它函数使用。
第2个回答  2012-12-22
每次都是同一个地址,此块地址被定义为静态内存,不会在函数调用后释放。
第3个回答  2012-12-22
只要是静态存储类型的变量都是在预编译阶段编译器已经在数据区分配好了内存,这个地址是不会变的,你可以一直使用它知道该程序结束。但建议不要使用static类型的变量,这样太浪费内存空间了。使用malloc申请空间是一个好的方法,不过记得使用完要交换给操作系统
第4个回答  2012-12-22
作为静态内存,它一直没释放,所以地址也没变
相似回答