iOS内存布局

关于内存布局

iOS内存布局_第1张图片
我们来验证一下。

int a ;
int b = 0;
int main (void) {
    static int c = 0;
    int d;
    int e = 0;
    static int g;
    NSString *string = @"ads";
    NSObject *f = [[NSObject alloc] init];
    NSLog(@"未初始化的全局变量:%p", &a);
    NSLog(@"已初始化的全局变量:%p", &b);
    NSLog(@"已初始化的静态变量:%p", &c);
    NSLog(@"未初始化的静态变量:%p", &g);
    NSLog(@"未初始化的自动变量:%p", &d);
    NSLog(@"已初始化的自动变量:%p", &e);
    NSLog(@"alloc分配的对象:%@", f);
    NSLog(@"字符串常量%p", string);
    return 0;
    }
未初始化的全局变量:0x1000021bc
已初始化的全局变量:0x1000021b8
已初始化的静态变量:0x1000021c0
未初始化的静态变量:0x1000021c4 
未初始化的自动变量:0x7ffeefbff488
已初始化的自动变量:0x7ffeefbff484
alloc分配的对象:
字符串常量0x100001028
Program ended with exit code: 0

可以看到顺序从小到大是:
字符串常量、已初始化的全局变量、未初始化的全局变量、已初始化的静态变量、未初始化的静态变量、alloc分配的对象、已初始化的自动变量、未初始化的自动变量。
验证完毕。

你可能感兴趣的:(iOS内存布局)