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

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

全局静态变量

在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。

好处:

定义全局静态变量的好处:

(1)不会被其他文件所访问,修改

(2)其他文件中可以使用相同名字的变量,不会发生冲突。

 

局部静态变量

在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。

  1)内存中的位置:静态存储区

  2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

  3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

 

// 全局变量:只有一份内存,所有文件共享,与extern联合使用。

int a = 20;

// static修饰全局变量

static int age = 20;

- (void)test

{
// static修饰局部变量
static int age = 0;
age++;
NSLog(@"%d",age);
}

- (void)viewDidLoad {

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[self test];
[self test];

extern int age;

NSLog(@"%d",age);
}

 

转载于:https://www.cnblogs.com/hpbb/p/5335243.html

你可能感兴趣的文章
当红炸子鸡区块链,如何实现企业级部署?
查看>>
sugon raid模式
查看>>
用wincvs查询代码变化的操作说明
查看>>
最初的汇率是怎么定下来的?
查看>>
hadoop常用命令
查看>>
亭子早期博客中16进制颜色值地址
查看>>
tab选项卡前后有向前和向后按钮,点击实现上一个下一个
查看>>
iterm2远程ssh连接服务器乱码问题
查看>>
Spring singleton bean 与 prototype bean 的依赖
查看>>
MYSQL主从不同步延迟原理分析及解决方案
查看>>
使用LeakTracer检测android NDK C/C++代码中的memory leak
查看>>
软件即服务或将使本地Linux应用开发停速
查看>>
Python的学习笔记16------urllib
查看>>
深度剖析安卓Framebuffer设备驱动
查看>>
C/C++那些事儿之 数的转换
查看>>
用ViewPager实现欢迎引导页面
查看>>
ffmpeg源码分析 (三)
查看>>
Oracle11g x64使用Oracle SQL Developer报错:Unable to...
查看>>
概率论与数理统计14--方差
查看>>
关于PHP中按位取反问题
查看>>