棧區數據

  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);
}函數

            局部變量的內存是保存在棧區  先進棧的會先用大的地址 詳看下圖操作系統

 

 

相關文章
相關標籤/搜索