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/C++經典面試題面試題
- 解剖Nginx·自動指令碼篇(2)設定初始變數指令碼 auto/initNginx指令碼變數
- 解剖Nginx·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx指令碼原始碼變數
- C++程式碼閱讀筆記(一)筆記
- 解剖Nginx·自動指令碼篇(6)編譯器名稱變數指令碼 auto/cc/nameNginx指令碼編譯變數
- 精讀Nginx原始碼·自動指令碼篇(2)設定初始變數指令碼 auto/initNginx原始碼指令碼變數
- 精讀 Nginx 原始碼·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx原始碼指令碼變數
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- 變數的分類(臨時(本地)變數、環境變數、全域性變數和系統變數)變數
- Android Auto-Building Apps for Auto,Getting Started with AutoAndroidUIAPP
- C++語言常見問題解答(3) (轉)
- C++語言常見問題解答(1) (轉)
- 關於MySQL主主配置的auto_increment_offset和auto_increment_increment引數的解釋MySqlREM
- iOS 靜變數static、全域性變數extern、區域性變數、例項變數iOS變數
- Python經典程式設計習題100例:第42例:學習使用auto定義變數Python程式設計變數
- Oracle中的替換變數,&變數名,&&變數名說明Oracle變數
- linux基礎——shell變數(本地變數和環境變數)Linux變數
- python變數與變數作用域Python變數
- ODI第7節-變數(一):變數變數
- auto型別型別
- inherit與auto
- Auto CAD
- Mysql auto_increment 重新計數(讓id從1開始)MySqlREM
- 引數和變數變數
- android auto-Providing Audio Playback for AutoAndroid
- 全域性變數與區域性變數變數
- 靜態變數和非靜態變數變數
- ODI第10節-變數(四):變數使用變數
- 成員變數和區域性變數變數
- C語言區域性變數、全域性變數、靜態區域性變數、靜態全域性變數C語言變數
- 二、變數變數
- 變數提升變數
- 變數1變數
- 位置變數變數
- java變數Java變數
- 變數整理變數
- css變數CSS變數
- javaScript變數JavaScript變數