栈区数据

  1.应用程序启动后,操做系统会为应用程序在栈区中开辟内存空间,用于存放局部变量,以及函数的参数等
2.iOS主线程栈区大小为1M,MAC主线程栈区大小为8M
3.栈区中的变量由编译器负责分配和释放
4.栈区中的数据是以“栈”的形式管理的,先进后出(FIBO)
5.访问栈区中变量的效率高,不会出现内存碎片
6.栈区中的变量名(不带*)至关因而指向栈区数据的指针别名,变量名能够简化程序员的工做程序员

        

 

 


int sum(int x, int y)
{
    NSLog(@"x: %p, Y: %p", &x, &y);
   
    int result = x + y;
   
    NSLog(@"%p", &result);
   
    return result;
}

void demo1()
{
    // 在栈区中的变量,i本质上对应"内存地址"的"标签"
    // 指针 * 表示指向内容空间的内容 & 表示地址
    int i = 10;
    i = i + 5;
   
    NSLog(@"==== %d", *(&i));
   
    int j = 20;
   
    NSLog(@"i:%p, J:%p", &i, &j);
   
    int result = sum(i, j);
   
    NSLog(@"%d %p", result, &result);
}函数

            局部变量的内存是保存在栈区  先进栈的会先用大的地址 详看下图操作系统

 

 

相关文章
相关标签/搜索