static 关键字小解
2016-05-08 15:23
519 查看
在变量声明前加上关键字static可以使局部变量保留多次调用一个方法所得的值
static int a = 1;
声明一个整型静态变量 a 。这里是不需要初始化的,静态变量的初始值就是0;
经常我们需要计算执行一个方法的次数,我们会习惯性的使用一个实例变量来计数
例如 在interface中声明 index 后初始化为 0
然后在方法中index ++
- (void)showPageNumber
{
index ++;
NSLog(@"index = %d",index);
}
但是同时也能这样实现
- (void)showpagenumber
{
static int a;
a++;
NSLog(@"a = %d",a);
}
如果用个for 循环来调用这两个方法 可以发现都能够实现计数。第二种方法就是利用了static 关键字声明的变量在程序运行后只是初始化一次,后面再进来也不会再被初始化
那么这两种方法的区别是什么,
区别在于如果在 一个NSObject 类中去声明实现这个方法,然后在外界不管类实例化多少次,静态变量 a 都能够不断的计数,但是实例变量会在每次实例创建的时候重新初始化,
static int a = 1;
声明一个整型静态变量 a 。这里是不需要初始化的,静态变量的初始值就是0;
经常我们需要计算执行一个方法的次数,我们会习惯性的使用一个实例变量来计数
例如 在interface中声明 index 后初始化为 0
然后在方法中index ++
- (void)showPageNumber
{
index ++;
NSLog(@"index = %d",index);
}
但是同时也能这样实现
- (void)showpagenumber
{
static int a;
a++;
NSLog(@"a = %d",a);
}
如果用个for 循环来调用这两个方法 可以发现都能够实现计数。第二种方法就是利用了static 关键字声明的变量在程序运行后只是初始化一次,后面再进来也不会再被初始化
那么这两种方法的区别是什么,
区别在于如果在 一个NSObject 类中去声明实现这个方法,然后在外界不管类实例化多少次,静态变量 a 都能够不断的计数,但是实例变量会在每次实例创建的时候重新初始化,
相关文章推荐
- Ubuntu 修改盘的标号
- 记一下“树莓派3”
- 位运算总结
- 第十一周学习进度表
- JAVA中的循环
- 排序算法
- PageRank算法
- Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor (括号匹配和删除,输出最后的括号序列)
- Windows 内核数据结构学习总结
- 《大型网站系统与JAVA中间件实践》读书笔记
- 需要读读的博客文章
- IOS的三种定时器 GCD CADisplayLink NSTimer
- HDU1885 Key Task(BFS+状态压缩)
- 深度学习——PReLU激活
- SpringMVC实战(四)-处理模型数据
- POJ 1094 Sorting It All Out【floyd传递闭包+拓扑排序】
- Linux mysql设置表名不区分大小写,设置编码
- 熵
- 第十周学习进度表
- Linux mysql设置表名不区分大小写,设置编码