C基礎回顧2

來源:互聯網
上載者:User

標籤:

儲存類型:

          有三個地方用於儲存變數:普通記憶體、運行時堆棧、硬體寄存器。    

          變數的預設儲存類型取決於它的聲明位置。1、凡是在任何代碼塊之外聲明的變數總是儲存於靜態記憶體中,為靜態變數。靜態變數在程式運行之前建立,在程式整個執行期間始終存在。2、在代碼塊內部聲明的變數的預設儲存類型是自動的變數,儲存於堆棧中。在程式執行到聲明自動變數的代碼塊時,自動變數才建立,程式執行流離開代碼塊是,自動變數自行銷毀。再次執行該代碼塊時,這些自動變數在堆棧中的記憶體位置,有可能與原來的相同,也可能不同。當代碼塊再次執行時,值一般並不是上次執行時的值。3、在代碼塊內部聲明的變數加上static,則轉換為靜態變數。在整個程式執行過程一直存在,但範圍只在該代碼內部。函數的形式參數不能聲明為靜態,因為實參總是在堆棧中傳遞給函數,用於支援遞迴。4、關鍵字register聲明自動變數,儲存於硬體寄存器中。

           初始化:

                   靜態變數的初始化:把可執行程式檔案想要初始化的值放在當程式執行時變數將會使用的位置。不顯示制定初始值,初始化為0。

                   動態變數的初始化:函數的局部變數在函數的每次調用中可能佔據不同的位置。自動變數無預設的初始值。

                                            聲明變數的同時進行初始化和先聲明後賦值無效率差別。

static關鍵字

            1.用於函數定義時,或用於代碼塊之外的變數聲明時:static關鍵字用於修改標示符的連結屬性,從external-->internal,標識符的儲存類型和範圍不受影響。

            2.用於代碼塊內部的聲明:static關鍵字用於修改變數的儲存類型,變為靜態變數。在程式執行之前建立。

 

C基礎回顧2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.