一、關鍵點
auto讓編譯器通過初始值來推算變量的類型
如:auto i = 2; //等價于int i = 2;
二、與複合類型、常量的結合
1. 引用
int i = 0, &r = i;
auto sz = r; //sz的類型為r所綁定的對象i的類型
以引用對象的類型作為auto的類型。
2. const
auto會忽略掉頂層const,而底層const則會保留下來。
auto b = ci; //ci的頂層const被忽略
auto c = cr; //cr是ci的别名,ci本身是一個頂層const
auto d = &i; //d指向整型i
auto e = &ci; //e指向整型常量ci,對常量對象取位址是一種底層const
如果希望auto類型是一個頂層const,可以這樣:const auto f = ci;