您好,登錄后才能下訂單哦!
今天小編給大家分享一下C++中auto關鍵字怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
1.類型名,在絕大多數編程時,我們都會引入類型來定義一個我們需要的數據。
類型眾多,偶爾我們會遇見一串類型名,使用起來無比復雜。存在拼寫錯誤,含義不明確導致出錯的問題。
列如:
std::map<std::string, std::string> m{ { "apple", "蘋果" }, { "orange", "橙子" }, {"pear","梨"} }; std::map<std::string, std::string>::iterator it = m.begin();
在這串代碼中,std::map<std::string, std::string>::iterator 是一個類型,但是該類型太長了,特別容易寫錯。如何簡化呢。
在C中,typedef 作為一個可以取別名的一個關鍵字。確實可以省事許多,卻任然存在缺陷。
typedef std::map<std::string, std::string> Map;
若 typedef 為指針取了別名。存在小問題。
typedef char* pstring; int main() { const pstring p1; // 編譯成功還是失敗? const pstring* p2; // 編譯成功還是失敗? return 0; }
C++是怎么做的呢,設計師為了不想寫復雜的類型,引入了auto關鍵字。
auto :
1.在早期C/C++中auto的含義是:使用auto修飾的變量,是具有自動存儲器的局部變量
2.C++11中,標準委員會賦予了auto全新的含義即:auto不再是一個存儲類型指示符,而是作為一個新的類型指示符來指示編譯器,auto聲明的變量必須由編譯器在編譯時期推導而得
注:既然auto作為推導而得,在使用auto時,必須初始化。
1. auto 在推導指針是,不必再加*號;
2.auto在使用引用時,必須遵循規則加上&號;
3.不能作為函數的參數使用
4.不能直接用來聲明數組。
5.一行多個數據推導必須同類型。
int main() { //1 int x = 10; auto a = &x; auto* b = &x; auto& c = x; cout << typeid(a).name() << endl; cout << typeid(b).name() << endl; cout << typeid(c).name() << endl; *a = 20; *b = 30; c = 40; //5 void TestAuto() { auto a = 1, b = 2; auto c = 3, d = 4.0; //錯 } return 0; }
以上就是“C++中auto關鍵字怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。