auto關鍵字使用

2021-09-08 09:04:54 字數 863 閱讀 6279

auto型別變數——根據初始值推斷真實的資料型別。

有些時候並不能很確定乙個變數應該具備的資料型別,例如:將乙個複雜表示式的值賦給某個變數,此時並不能很明顯的確定這個值所具備的資料型別。此時auto關鍵字可以派上用場。auto儲存型別說明符宣告了乙個自動變數,auto物件和變數被儲存在棧中,它的生命週期僅存在於它的宣告所在的塊(block)中,即乙個只在塊執行時有效的變數。乙個auto變數僅在宣告它的塊內是可見的。auto物件和變數對外部模組都是不可見的。auto變數的宣告能包含初始化。因為有auto儲存型別的變數並不自動的初始化,應該在宣告時顯式的初始化它們,或在同乙個塊內賦給它們初始值。未初始化的auto變數的值是未定義的。

在c++ 11中,使用auto定義的變數不能使用其它型別修飾符修飾,該變數的型別由編譯器根據初始化資料自動確定。auto型別的變數必須進行初始化.

1、使用auto關鍵字的變數必須有初始值。

2、可以使用valatile,*(指標型別說明符),&(引用型別說明符),&&(右值引用)來修飾auto關鍵字。

3、函式引數和模板引數不能被宣告為auto。

4 、使用auto關鍵字宣告變數的型別,不能自動推導出頂層的cv-qualifiers和引用型別,除非顯示宣告。使用auto關鍵字進行型別推導時,如果初始化表示式是引用型別,編譯器會去除引用,除非顯示宣告。

使用auto使用auto關鍵字進行型別推導時,編譯器會自動忽略頂層const,除非顯示宣告。

5、對於陣列型別,auto關鍵字會推導為指標型別,除非被宣告為引用。

posted @

2018-11-02 19:21

tingwei_chen 閱讀(

...)

編輯收藏

auto關鍵字 decltype關鍵字

自動型別推斷 1 使用auto關鍵字的變數必須有初始值。在定義的時候進行初始化 2 函式引數和模板引數不能被宣告為auto。3 使用auto關鍵字進行型別推導時,如果初始化表示式是引用型別,編譯器會去除引用,除非顯示宣告 4 使用auto使用auto關鍵字進行型別推導時,編譯器會自動忽略頂層cons...

auto關鍵字作用

在定義變數時,使用auto可以讓變數定義為初始化的值型別。auto a 1 auto b string 123 在模板函式內,返回值可以省去型別,由編譯器推導。如果在c 11舊版本,需要使用decltype關鍵字手動推導。templateauto add t x,s y intmain 匿名函式無法...

C 之auto關鍵字

在那些情況下要申明型別 定義變數型別 函式返回值,函式引數 表示式返回變數型別 為什麼auto 在開發實踐中,有時候我們並不能非常容易地確定乙個變數應該具有的資料型別。比如,將某個複雜表示式作為初始值賦值給乙個新定義的變數時,我們往往很難確定這個表示式的資料型別,從而無法確定變數應有的資料型別。為了...