C/C++ 98標准 C++03標准
早在C++98標准中就存在了auto關鍵字,那時的auto用於聲明變量為自動變量,自動變量意為擁有自動的生命期。此用法是多余的,因為即使定義變量時不加"auto",變量也會有自動的生命期。用法如下:
auto int b = 20 ; //擁有自動生命期 int a =10 ; //同樣擁有自動生命期
在C++11中,已經刪除了此用法。
C++11標准
C++11引入auto類型說明符,用它能實現讓編譯器替我們分析表達式所屬的類型。auto讓編譯器通過初始值來推算變量的類型。顯然,auto定義的變量必須有初始值。
比如,auto Sum =a1+a2;若a1、a2是float類型,則Sum的類型就是float;若a1、a2是某個類的對象,則Sum也為該類的對象;
使用auto也能在一條語句聲明多個變量,但是基本數據類型必須相同,如:
auto i=0,*p=&i; //正確,i是整數,p是整形指針 auto sz=0,pi=3.14; //錯誤,sz和pi類型不一致