static的作用static 关键字的作用

static的作用  时间:2021-01-24  阅读:()

java中的static有什么作用

(1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内; (4)在类中的static成员变量意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见; (5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

C语言中,static的作用?

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。

(1)第一个作用:隐藏。

当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

为理解这句话,我举例来说明。

我们要同时编译两个源文件,一个是a.c,另一个是main.c。

下面是a.c的内容 #include<cstdio>增加这条语句 char a = ‘A‘; // global variable void msg() { printf("Hello "); } 你可能会问:为什么在a.c中定义的全局变量a和函数msg能在main.c中使用?前面说过,所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。

此例中,a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的。

如果加了static,就会对其它源文件隐藏。

例如在a和msg的定义前加上static,main.c就看不到它们了。

利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。

Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。

(2)static的第二个作用是保持变量内容的持久。

存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。

共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。

(3)static的第三个作用是默认初始化为0。

其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。

在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。

最后对static的三条作用做一句话总结。

首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

下面是main.c的内容 除了头文件,需要声明函数:void msg(); int main(void) { extern char a; // extern variable must be declared before use printf("%c ", a); (void)msg(); return 0; }

面试题:static有什么作用

1、抽象类里面可以有非抽象方法但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。

不能创建abstract 类的实例。

然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。

不能有抽像构造函数或抽像静态方法。

Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。

取而代之,在子类中实现该方法。

知道其行为的其它类可以在类中实现这些方法。

2、接口(interface)是抽像类的变体。

在接口中,所有方法都是抽像的。

多继承性可通过实现这样的接口而获得。

接口中的所有方法都是抽像的,没有一个有程序体。

接口只可以定义static final成员变量。

接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。

当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。

然后,它可以在实现了该接口的类的任何对像上调用接口的方法。

由于有抽像类,它允许使用接口名作为引用变量的类型。

通常的动态联编将生效。

引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口

static 关键字的作用

(1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内; (4)在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝; (5)在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。

Hosteons - 限时洛杉矶/达拉斯/纽约 免费升级至10G带宽 低至年$21

Hosteons,一家海外主机商成立于2018年,在之前还没有介绍和接触这个主机商,今天是有在LEB上看到有官方发送的活动主要是针对LEB的用户提供的洛杉矶、达拉斯和纽约三个机房的方案,最低年付21美元,其特点主要在于可以从1G带宽升级至10G,而且是免费的,是不是很吸引人?本来这次活动是仅仅在LEB留言提交账单ID才可以,这个感觉有点麻烦。不过看到老龚同学有拿到识别优惠码,于是就一并来分享给有需...

cera:秋季美国便宜VPS促销,低至24/月起,多款VPS配置,自带免费Windows

介绍:819云怎么样?819云创办于2019,由一家从2017年开始从业的idc行业商家创办,主要从事云服务器,和物理机器819云—-带来了9月最新的秋季便宜vps促销活动,一共4款便宜vps,从2~32G内存,支持Windows系统,…高速建站的美国vps位于洛杉矶cera机房,服务器接入1Gbps带宽,采用魔方管理系统,适合新手玩耍!官方网站:https://www.8...

digital-vm$80/月,最高10GDigital-VM1Gbps带宽带宽

digital-vm在日本东京机房当前提供1Gbps带宽、2Gbps带宽、10Gbps带宽接入的独立服务器,每个月自带10T免费流量,一个独立IPv4。支持额外购买流量:20T-$30/月、50T-$150/月、100T-$270美元/月;也支持额外购买IPv4,/29-$5/月、/28-$13/月。独立从下单开始一般24小时内可以上架。官方网站:https://digital-vm.com/de...

static的作用为你推荐
怎么在qq空间里添加背景音乐怎样在qq空间里免费添加背景音乐?自助建站自助建站哪个平台最好?微信如何建群在微信里怎么创建一个群别人可以加入扫描二维码的加入办公协同软件oa办公系统软件有哪些彩信中心移动的短信中心号码是多少如何建立自己的网站如何建立自己的网站怎么升级ios6苹果IOS5怎么升级IOS6版本人人逛街人人都喜欢逛街吗mate8价格手机华为mat8售价多少iphone6上市时间苹果6什么时候在中国大陆上市
主机租赁 如何注册网站域名 如何查询ip地址 siteground 新世界电讯 ibox官网 777te 52测评网 河南m值兑换 腾讯实名认证中心 lick 智能dns解析 监控服务器 电信网络测速器 畅行云 免费个人主页 如何登陆阿里云邮箱 创速 移动王卡 九零网络 更多