auto 是C++11中增加的一个非常有用的关键字,其核心在于类型推导(type deduction),也就是让编译器根据等号右边的表达式来决定auto实际代表的类型。注意它区别于其他语言的“动态”类型(如objective c的id和C#的dynamic),C++的auto只涉及到编译期的行为而不是运行期。
静态类型是指在运行之前就检查数据类型的语言,比如C/C++在编译的时候,就检查了数据类型。
动态类型是指,在运行的时候(runtime)才检查数据类型,比如php、javascript。
for (char& c : s)
使用了引用类型,直接引用原字符串进行遍历操作,不需要赋值,但是对c进行赋值时也会改变原来的值
for (char c : s)
复制一个s字符串再进行遍历操作,时间增大但是不会改变字符串s的值