编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而要做到这一点并非那么容易,有时根本做不到。
c++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属类型。
例如:
int a=3,b=2;
auto s=a+b;
因为两个变量类型是int ,所以 s的类型也就是int。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s("some string");
for(auto c:s) //for循环把变量c和s联系起来,通过使用auto,c的类型为char,每次迭代,s的下一个字符被拷贝给c,
cout<<c<<endl; //因此循环可以读作“对于字符串是s中的每个字符c”
system("pause");
return 0;
}
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s("some string");
for(auto &c:s)
c=toupper(c);//c是一个引用,因此赋值语句将改变s中的字符
cout<<s<<endl;
system("pause");
return 0;
}