静态变量与普通变量有什么区别???
问题点数:30、回复次数:4Top
1 楼luckyegg(幸运蛋)回复于 2001-12-28 08:42:29 得分 30
静态变量是所有对像的共享数据,而不属于某个成员。
局部静态变量的值在函数调用结束后不消失而保留原值,在下次调用时,其值就是上次调用结束时的值。
例:
int f(int a){
int b=0;
static int c=3;
b=b+1;
c=c+1;
return (a+b+c);
}
main()
{
int a=2;
for(i=0;i<3;i++)
printf("%d",f(a));
}
/////output:
7 8 9
}
Top
2 楼A_Qiao()回复于 2001-12-28 08:42:40 得分 0
1。类中的静态变量
该类的所有实例拥有同一个拷贝。而非静态变量则每一个实例各自有一份拷贝。
2。函数中的静态变量
退出该函数后,该静态变量的值保持不变,以便下一次调用该函数时能利用。在用API的消息循环语句中经常采用。Top
3 楼liao_xf()回复于 2001-12-28 08:56:06 得分 0
在栈式调用中,静态变量存在全局数据区,在函数退出后不会消失.
普通变量则会被冲掉.Top
4 楼lmfree(Micah)回复于 2001-12-28 14:22:21 得分 0
静态变量分为全局静态变量和函数内静态变量
前者和全局变量是一样的,他在主函数运行前就在全局变量区被初始化了。
函数内的静态变量我所了解的是他在编译时被改变了名字,用编译器内定的名字替换,
然后和全局变量一样的初始化。我认为主要是为了避免和全局变量重名。
在全局变量区的数据与应用程序有同样的生命周期。
Top




