C++ auto變數
auto:用來宣告自動變數。它是儲存型別識別符號,表明變數(自動)具有本地範圍,塊範圍的變數宣告(如for迴圈體內的變數宣告)預設為auto儲存型別。 其實大多普通宣告方式宣告的變數都是auto變數,他們不需要明確指定auto關鍵字,預設就是auto的了。auto變數在離開作用域是會變程式自動釋放,不會發生記憶體溢位情況(除了包含指標的類)。使用auto變數的優勢是不需要考慮去變數是否被釋放,比較安全吧。 new:new是用來在堆上申請記憶體地址的關鍵字,他產生的變數不會自動釋放,除非delete來手動釋放,或者程式結束時由作業系統釋放,使用new的優勢是記憶體使用比較靈活,理論可以申請任意大小的記憶體區塊(實際與作業系統有關),但這很容易產生問題,一不小心忘記釋放物件,特別是在頻繁呼叫的函式內建立的物件忘記釋放時,會產生記憶體溢位,嚴重時導致程式出錯,系統崩潰。new一般都是在類的定義中使用,結合delete可以使包含new出來物件的類也具有自帶變數功能,這樣就繼承了兩種方式的優勢。 -------------------------------------------------------------- 另外,最新的C++標準更新了auto關鍵字的功能 除了具有原有的含義外,還增加了一種類似其他高階語言的型別推導特性 使用auto來代替變數的型別, 前提是被明確型別的初始化變數初始化的,可以使用auto關鍵字 比如int i=10; auto a = i; //這樣a也是int型別了 這在使用一些模板類的時候,對於減少冗贅的程式碼也很有用 --------------------------------------------------------------- static變數是程式接收的時候才釋放物件的,但它不需要手動釋放。 static如果在一個函式內申明,這每次進入這個函式時,還是使用第一次宣告的變數,並且還儲存的上次使用的值(auto變數這時函式結束是即釋放了,再次呼叫這個函式是,有重新定義了一個新的變數)
static變數如果在結構和類中使用,這結構或類定義的一切物件,都將共享唯一static變數。
轉載來自:http://blog.csdn.net/stopbl/article/details/77942025
相關文章
- C++ addon
- C++程式碼閱讀筆記(一)筆記
- Python經典程式設計習題100例:第42例:學習使用auto定義變數Python程式設計變數
- Auto CAD
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- 變數的分類(臨時(本地)變數、環境變數、全域性變數和系統變數)變數
- auto型別型別
- 說說 auto
- 第四章:QML中呼叫C++互動
- Mysql auto_increment 重新計數(讓id從1開始)MySqlREM
- python變數與變數作用域Python變數
- Ansible fact變數與魔法變數變數
- redis:auto-completeRedis
- z-index:autoIndex
- Auto關鍵字
- [Vue] Routes auto generatorVue
- 變數變數
- Python中類變數、成員變數、區域性變數的區別Python變數
- 成員變數和區域性變數變數
- 全域性變數與區域性變數變數
- 區域性變數和全域性變數變數
- 十四、類變數和實列變數(python)變數Python
- AUTO START ORACLE ON LINUX(zt)OracleLinux
- SAP QM Auto Usage Decision
- Shell程式設計-shell變數2-位置變數和預定義變數程式設計變數
- 變數1變數
- 變數提升變數
- java變數Java變數
- 位置變數變數
- 引用變數變數
- Python變數Python變數
- JavaScript變數JavaScript變數
- Python - 變數Python變數
- 變數整理變數
- 二、變數變數
- Java中變數之區域性變數、本類成員變數、父類成員變數的訪問方法Java變數
- Java區域性變數與全域性變數Java變數
- 淺談變數型別之外的變數命名變數型別
- Tensorflow學習筆記: 變數及共享變數筆記變數