可能重複:
Is there any reason to use the 'auto' keyword in C/C++?變量自動
我讀到:
int i;
和
auto int i;
是等同的。如果是這樣,C中auto關鍵字的用法是什麼?有什麼特別的情況下,汽車更有用嗎?還是無法實現自動化的事情?
可能重複:
Is there any reason to use the 'auto' keyword in C/C++?變量自動
我讀到:
int i;
和
auto int i;
是等同的。如果是這樣,C中auto關鍵字的用法是什麼?有什麼特別的情況下,汽車更有用嗎?還是無法實現自動化的事情?
自動只是隱含在C中,但由於很少(從未讀過)它在實際代碼中顯式使用,它的含義在C++ 11中已經發生了變化。
自動只是指定自動存儲,這意味着變量將超出範圍時消失。
Ç (稱爲自動變量)
的代碼塊內聲明的所有變量都默認爲自動的,但這是可以作出了明確與自動關鍵字。
未初始化的自動變量有一個未定義的值,直到它被分配了一個有效的類型值。 使用存儲類寄存器而不是自動提示編譯器將該變量緩存在處理器寄存器中。
除了不允許在變量或其任何子組件上使用引用運算符(&)之外,編譯器可以自由忽略該提示。 在C++中,執行到達聲明位置時會調用自動變量的構造函數。
析構函數在到達給定程序塊的末尾時調用(程序塊被大括號包圍)。
此功能通常用於管理資源分配和釋放,如打開然後自動關閉文件或釋放內存。見RAII。
這不再是完全準確的,至少對於C++ 11來說是個好主意。 'auto'現在指定類型推斷。 – 2012-03-28 16:31:03