Разъяснение ссылок в C++

Итак, я пытаюсь изучить C++ и столкнулся с чем-то, что меня слегка озадачило. У меня есть код,

int x = 0;
int &y = x;
cout << &x<< " " << x << " " << &y << " " <<y<< endl;

Это компилируется нормально и приводит к:

0 003AFA08 0 003AFA08

Что мне трудно понять, почему преобразование x, int, в &y, ссылку, не приводит к ошибке. Сначала я подумал, что это какое-то преобразование, однако

int &y = &x;

приводит к ошибке.

Может ли кто-нибудь объяснить, почему это работает таким образом? Заранее спасибо.

6
задан Daniel Gratzer 26 December 2011 в 05:56
поделиться