美文网首页
静态区问题

静态区问题

作者: 等一个最好的自己 | 来源:发表于2021-01-18 16:45 被阅读0次

TestObject.h中

static NSInteger num = 100;
@interface TestObject : NSObject
+(void)add;
@end

TestObject.m中

+(void)add{
    num ++;
    NSLog(@"TestObject---- %p-----%ld",&num,num);
}

ViewController.m中

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"%p-----%ld",&num,num);
    num = 10000;
    NSLog(@"%p-----%ld",&num,num);
   
    [TestObject add];
    NSLog(@"%p-----%ld",&num,num);
}

大家知道能输出啥吗?
输出结果如下:

2021-01-18 16:36:23.675920+0800 test[99077:6602929] 0x1024211d0-----100
2021-01-18 16:36:23.675973+0800 test[99077:6602929] 0x1024211d0-----10000
2021-01-18 16:36:23.676172+0800 test[99077:6602929] TestObject---- 0x1024211c8-----101
2021-01-18 16:36:23.676210+0800 test[99077:6602929] 0x1024211d0-----10000

为啥呢,这里大家应该知道一个概念就是用stastic修饰的全局静态变量,只对文件有。可以看打印,num在TestObject和ViewController两个不同的文件里,地址也是不一样的。
同样分类和类也是属于两个不同的文件的。

相关文章

  • 静态区问题

    TestObject.h中 TestObject.m中 ViewController.m中 大家知道能输出啥吗?输...

  • 08内存管理

    C语言的内存分两种:静态内存,动态内存 静态内存 静态内存包括 栈区,数据区,代码区 [特点] ​ (1)静态...

  • Java 堆/栈 GC相关

    一、Java程序运行时的内存分配策略 静态分配[静态存储区]/栈分配[栈区]/堆分配[堆区] 1)静态存储区...

  • 19·iOS 面试题·什么是 ARC ?(ARC 是为了解决什么

    前言 对于 iOS 内存分区有:栈区、堆区、静态区、全局区、常量区、代码区。对于静态区、全局区、常量区、代码区,对...

  • 内存介绍

    虚拟内存总体分五大区域,栈区(堆栈),堆区(托管堆),常量,静态(静态未初始化区,和静态初始化区)其他区域**栈区...

  • 动态内存分配_C语言

    逻辑上的分区 栈区 堆区 静态区 常量区 代码区 代码区,常量区,静态区,堆区,栈区这个排列顺序按照地址由小到大排...

  • C++ 内存布局

    堆、栈、静态数据区、常量区、代码区以下是各个区的作用:(1)代码区:存放程序代码;(2)数据区a.静态数据区: 在...

  • 内存管理

    首先,内存分为:栈区、堆区、全局区/静态区(存放全局变量和static静态变量)、常量区(存放字符串常量)、代码区...

  • stm32 SRAM内存变量分布

    stm32f103xxxx系列SRAM内存会分成这几个区: 代码区 静态存储区 动态存储区 其中 静态存储区包括:...

  • iOS堆和栈以及内存分布

    1.iOS中一共分为,代码区,常量区,全局区/静态区(初始化的),全局区/静态区(未始化的), 这几个区是随着程序...

网友评论

      本文标题:静态区问题

      本文链接:https://www.haomeiwen.com/subject/bpyxzktx.html