Today, I>#include <iostream> int main() { const int ci = 0, &cj = ci; decltype(ci) x = 0; decltype(ci) y = x; std::cout << &x << "," << &y << std::endl; return 0; }
#include <iostream> int main() { const int ci = 0, &cj = ci; decltype(cj) x = 0; decltype(cj) y = x; std::cout << &x << "," << &y << std::endl; return 0; }
The results are different. Why? You should made your own conclusion? Thinking it right now..
Conclusion:
the first program: The type of "x" is int-type, the same as the "y".. their addresses are different.
The second one: the type of "x" is a reference-type... the initialization value is 0.. the second is the same type as "x", but it point to the address of "x". so they have the same address.. Remeber the reference-type needs the initialization before using. It's necessary to know that... Don't forget that..