C语言中的静态变量到底是怎么回事?不是说static 后面变量值是不变的,直到程序结束才释放,那后面的有涉

2024年11月19日 12:39
有2个网友回答
网友(1):

静态变量的静态是指变量占用的内存地址不释放,也就是说它的地址它从头到尾一直占着,不给其他内存单元占用而已,其本身的值是可以改变的。动态的变量的话,比如调用函数体里定义的变量,在函数执行后便释放出去,把有用的地址资源贡献给其他量,释放以后如果你用指针来打印这个地址的值的话,就很有可能不是原来的值了。

网友(2):

这个问题应该从变量生存期讨论。 一般自动变量的生存期会随着函数调用的结束而结束。而静态变量函数调用结束时仍然存在,直到整个程序运行结束时才结束。 具体的内容和实例可以仔细看一下书上的详细讲解。