Linux下C編程:華為C語言面試題之Variable

來源:互聯網
上載者:User

華為C語言面試題:

程式的局部變數存在於(堆棧)中,全域變數存 在於(靜態區 )中,動態申請資料存在於( 堆)中。

一點小總結:

1、關於堆棧,印象最深的就是在做uboot移植,在你準備進入c代碼時 ,你必須給c代碼一個良好的運行環境,其中重要的一項就是設定堆棧。

2、關於靜態記憶體配置和動態記憶體分配的區別及過程

1) 靜態記憶體 分配是在編譯時間完成的,不需要佔用CPU資源;動態分配記憶體是在運行時完成的 ,動態記憶體的分配與釋放需要佔用CPU資源;

2) 靜態記憶體配置是在棧上 分配的,動態記憶體是堆上分配的;

3) 動態記憶體分配需要指標或引用資料 類型的支援,而靜態記憶體配置不需要;

4) 靜態分配記憶體需要在編譯前確 定記憶體塊的大小,而動態分配記憶體不需要編譯前確定記憶體大小,根據運行時環境 確定需要的記憶體塊大小,按照需要分配記憶體即可。可以這麼說,靜態記憶體配置是 按計劃分配,而動態記憶體分配是按需分配。

5) 靜態分配記憶體是把記憶體的 控制權交給了編譯器,而動態記憶體是把記憶體的控制權交給了程式員;

綜 上所述,靜態分配記憶體適合於編譯時間就已經可以確定需要佔用記憶體多少的情況, 而在編譯時間不能確定記憶體需求量時可使用動態分配記憶體;但靜態分配記憶體的運行 效率要比動態分配記憶體的效率要高,因為動態記憶體分配與釋放需要額外的開銷; 動態記憶體管理水平嚴重依賴於程式員的水平,如果處理不當容易造成記憶體流失。

查看全套文章:http://www.bianceng.cn/Programming/C/201212/34807.htm

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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