博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
static变量
阅读量:7098 次
发布时间:2019-06-28

本文共 780 字,大约阅读时间需要 2 分钟。

首先看下面代码:

#include
int x=4;void incre() { static int x=1; x*=x+1; printf("%d",x);}int main() { int i; for(i=1;i

结果为:2642

这里涉及到对static变量和全局变量的理解:

C:static

函数外部定义,是文件静态变量,作用域为文件,生命周期是程序生命期。
函数内定义,是函数内部的静态变量,作用域为函数,生命周期是该程序生命期。
其中,函数中,语句组的内部静态变量,作用域为该语句组,生命周期是该程序生命期。上面代码中static变量只在ince()函数内有效。并且static变量在初始化的时候只会初始化一次,即第一次初始化,后面再调用ince()函数的时候不会再初始化。
C++:
    文件内的,匿名命名空间内,定义的变量,相当于文件静态变量。
    作用域为文件,生命周期是程序生命期。
类内部定义的静态变量,作用域为类,生命周期是程序生命期。
可以使用的区域是类,
    友元类或友元函数,以及定义类的区域,这些和友元,访问权等有关。
   类的作用域对友元是开放的。子类也有可能可以使用。
   对定义类的区域是否开放和访问权限等有关。
   其中 public 定义的静态变量, 在定义类的区域,可以通过类名访问。
   
和函数不同,函数内部定义的静态变量;
不可用在其他地方,只能通过函数调用访问。
类内部定义的静态变量,可以直接在类外部,通过类名引用。

在多个文件中调用全局变量正确的做法是在.c中定义全局变量,而在.h中用extern引出全局变量,当然static变量是无法extern的。

转载于:https://www.cnblogs.com/xiaodingmu/p/7451096.html

你可能感兴趣的文章
【IntelliJ】IntelliJ IDEA常用设置及快捷键以及自定义Live templates
查看>>
indexOf 和 lastIndexOf 的区别
查看>>
spring boot整合activemq消息中间件
查看>>
Spark:java api实现word count统计
查看>>
mqtt-jmeter
查看>>
Android上的蓝牙通信功能的开发:BluetoothChat例程分析
查看>>
Eclipse快捷键大全(转载)
查看>>
Yahoo!网站性能最佳体验的34条黄金守则——图片、Coockie与移动应用
查看>>
微博采撷(一)
查看>>
【CLR的执行模型:加载公共语言运行库(3)】
查看>>
中国用户通过rchange用银联充值到PerfectMoney再给BTC-E充值进行搬砖的方法
查看>>
DBCC--CHECKDB
查看>>
判断一个坐标点是否在不规则多边形内部的算法
查看>>
10个优秀的 HTML5 & CSS3 下拉菜单制作教程
查看>>
【转】【Asp.Net】Asp.net发送邮件的两种方法小结
查看>>
ACM进阶计划
查看>>
GitHub
查看>>
嘿嘿,今天学习啦数据检索啦
查看>>
linux网络相关配置文件
查看>>
敏捷开发(十一)- Scrum Sprint评审会议
查看>>