c语言中静态变量与动态变量的不同?

如题所述

动态变量在每次函数调用之后会把变量销毁,下次调用时就是另一个了。
静态的不会销毁,下次调用时还是那个。

比如:
void a(){
static int i=0;
i++;
}
void b(){
int i=0;
i++;
}
这个你调用两次a i就变成2了
不管你调用多少次b i都是1.
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-22
静态的是只能一次初始化,以后将记住上一次的操作记录。而动态去不,可以多次初始化。
第2个回答  2011-10-22
静态变量在你使用一次后再次使用时,它的值还是保留的上次使用后的值,动态变量布具有这个特性。
第3个回答  2011-10-22
动态变量会随着程序的运行、功能模块的切换而销毁,其所在地址的存储器将会分配另作它途。
静态变量始终保持,即使调用静态变量的功能模块已经交出控制权,这部分变量仍然占据其所分配的存储器。只有当功能模块彻底卸载时才会销毁静态变量。
相似回答