C 11關於auto關鍵字的使用示例

2022-10-04 00:06:31 字數 891 閱讀 2682

一.概述

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 是一種強型別語言,宣告變數時必須明確指出其型別。但是,在實踐中,優勢我...