总览 主旨 大多数都推荐用auto,少数情况还是要用显式声明. 主要内容 养成声明并初始化的习惯. auto的代码更简洁. auto可以声明未知类型变量. auto比std::function的好处. 必须赋值 说明 变量声明的时候就给赋值,可以一定程度上避免错误. 声明并赋值效率可能并不高,不过代码更严谨.所以一般推崇使用的地方声明并定义. 效果 不初始化编译不通过,编译阶段的检查. 案例一 int main() { auto a; return 0; } 编译不通过,auto必须赋值。养成定义并赋值的好习惯。 复杂变量类型简单化 说明 复杂的内置变量类型声明很长一串,还不一定对.用auto比较合适. 案例一 #include<vector> template <typename Iter> void foreach(Iter b, Iter e) { while (b != e) { std::iterator_traits<Iter>::value_type value = *b; b++; } } int main() { char s[10]; foreach(s, s + 10); return 0; }