• 150455

    文章

  • 1009

    评论

  • 13

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

static关键字<很详细>


static关键字的作用
C中static的作用
修饰一:静态局部变量
在修饰局部变量的时候,初始化局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。如果未对其初始化,系统会对默认初始化0或\0;


修饰二:静态全局变量
这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。其他文件中也可以定义和该变量一样的名字且不会冲突;

修饰三:静态函数
和静态全局变量一样,只能在该文件中被调用,其他文件不能调用。

C++中static的作用
C++中static的作用除了具有C中的作用之外还具有以下作用:

修饰一:静态数据成员
1、静态数据成员是在程序开始运行时被分配空间,到程序结束之后才释放,只要类中指定了静态数据成员,即使不定义对象,也会为静态数据成员分配空间;
2、静态数据成员可以被初始化,但是只能在类体外进行初始化,若未对静态数据成员赋初值,则编译器会自动为其初始化为0;
3、静态数据成员既可以通过对象名引用,也可以通过类名引用。


修饰二:静态成员函数
1、静态成员函数和静态数据成员一样,他们都属于类的静态成员,而不是对象成员;
2、静态成员函数没有this指针;
3、静态成员函数主要用来访问静态数据成员而不能访问非静态成员。


【简单延伸一点:为什么静态成员不能访问非静态成员?】
首先static的成员是在类加载的时候初始化的,JVM的CLASSLOADER的加载,首次主动使用加载,而非static的成员是在创建对象的时候,即new 操作的时候才初始化的;

先后顺序是先加载,才能初始化,那么加载的时候初始化static的成员,此时非static的成员还没有被加载必然不能使用,而非static的成员是在类加载之后,通过new操作符创建对象的时候初始化,此时static 已经分配内存空间,所以可以访问!

简单点说:静态成员属于类,不需要生成对象就存在了.而非静态需要生成对象才产生。


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客