一.概述
auto關鍵字在c++98中已經出現,在98中定義為具有自動儲存器的區域性變數,
c++11中標準委員會重新定義了auto關鍵字,表示乙個型別佔位符,告訴編譯器,auto宣告變數的型別必須由編譯器在編程式設計客棧譯時期推導
而得。注意事項:
1.auto關鍵字型別推斷發生在編譯期,程式執行時不會造成效率降低
2.auto關鍵字定義時就需要初始化
3.auto僅僅是乙個佔位符,它並不是乙個真正的型別, 因此sizeof(auto)是錯誤的
4.auto不能作程式設計客棧為函式的引數
5.auto不能定義陣列,如auto a[3] = ; 錯誤
二.使用
1.自動推導變數型別
auto a = 1;
auto b = 2ll;
awww.cppcns.comuto c = 1.0f;
auto d = "woniu201";
printf("%s\n", typeid(a).name());
printf("%s\n", typeid(b).name());
printf("%s\n", typeid(c).name());
printf("%s\n", typeid(d).name());
2.簡化**
//在對乙個vector容器遍歷的時候,傳統的方法如下:
vector v;
for (vector::iterator = v.begin(); it != v.end(); it++)
//使用auto關鍵字,簡化後的方法如下:
for (auto it = v.begin(); it != v.end(); it++)
關鍵字的存在使得使用stl更加容易,**更加清晰。
總結
C 11特性 auto關鍵字
正文 本文的內容已經不新鮮了。關於auto,翻來覆去被人知道的都是這些東西,本文並沒有提出新穎的auto用法。本人原是痛恨部落格一篇篇都是copy而來缺乏新意的探索,當然,本文不是copy而來,但發布這樣一篇大家皆知的文章心裡甚是惶恐。本文對auto的內容加以整理,權當是自己的複習筆記了。回到頂部 ...
C 11特性 auto關鍵字
本文的內容已經不新鮮了。關於auto,翻來覆去被人知道的都是這些東西,本文並沒有提出新穎的auto用法。本人原是痛恨部落格一篇篇都是copy而來缺乏新意的探索,當然,本文不是copy而來,但發布這樣一篇大家皆知的文章心裡甚是惶恐。本文對auto的內容加以整理,權當是自己的複習筆記了。早在c 98標準...
C 11新特性 auto關鍵字
熟悉指令碼語言的人都知道,很多指令碼語言都引入了 型別自動推斷 技術 比如python,可以直接宣告變數,在執行時進行型別檢查。隨著c 11標準的發布,c 語言也引入了型別自動推斷的功能,這就是我們今天要介紹的auto關鍵字。c 是一種強型別語言,宣告變數時必須明確指出其型別。但是,在實踐中,優勢我...