/*
《C++ Primer》学习 之 编译器推断auto类型
书P61-P62
重点在于程序中的注释,方便以后复习。
*/
1 #include <iostream>
2 #include <cmath>
3 #include <string>
4 using namespace std;
5
6 int main()
7 {
8 int i = 0, &r = i;
9 auto a = r; // a : int
10
11 const int ci = i, &cr = ci;
12 auto b = ci; // b : int
13 auto c = cr; // c : int
14 auto d = &i; // d : int *
15 auto e = &ci; // e : const int *
16 auto &g = ci; // g : const int &
17
18 const int i2 = 42;
19 auto j = i2; // j : int
20 const auto &k = i2; // k : const int &
21 auto *p = &i2; // p : const int *
22 const auto j2 = i2; // j2 : const int
23 const auto &k2 = i2; // k2 : const int &
24 auto &k3 = i2; // k3 : const int &
25
26
27 cout << "a : " << typeid(a).name() << endl;
28 cout << "b : " << typeid(b).name() << endl;
29 cout << "c : " << typeid(c).name() << endl;
30 cout << "d : " << typeid(d).name() << endl;
31 cout << "e : " << typeid(e).name() << endl;
32 cout << "g : " << typeid(g).name() << endl;
33
34
35 cout << "i2 : " << typeid(i2).name() << endl;
36 cout << "j : " << typeid(j).name() << endl;
37 cout << "k : " << typeid(k).name() << endl;
38 cout << "p : " << typeid(p).name() << endl;
39 cout << "j2 : " << typeid(j2).name() << endl;
40 cout << "k2 : " << typeid(k2).name() << endl;
41 cout << "k3 : " << typeid(k3).name() << endl;
42
43 return 0;
44 }