CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

静态变量与普通变量有什么区别???

楼主GGeneral2(阿弥陀佛)2001-12-28 00:54:37 在 VC/MFC / 基础类 提问

问题点数: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

相关问题

  • 全局静态变量与全局变量的区别?
  • 全局变量和静态局部变量有什么区别?
  • 全局变量和全局静态变量有区别吗?
  • 静态变量和实例变量的区别?
  • 静态变量 和 全局变量 有什么区别?
  • 关于静态变量和非静态变量区别的问题
  • 在全局变量和全局静态变量有什么区别
  • vc中,成员变量和static静态变量有什么区别?
  • 静态变量
  • 静态的全局变量和非静态的全局变量有什么区别呀?

关键词

  • 静态变量
  • 调用结束

得分解答快速导航

  • 帖主:GGeneral2
  • luckyegg

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo