Я наткнулся на фрагмент кода
const int& reference_to_const_int = 20;
cout<<"\n reference_to_const_int = "<<reference_to_const_int<<endl;
Этот код компилируется и выполняется с выводом: -
reference_to_const_int = 20
Это что-то странное для меня. Насколько я знаю, ссылки не занимают память и являются псевдонимами других переменных. следовательно, мы не можем сказать
int& reference_to_int = 30;
Вышеупомянутое утверждение не должно компилироваться с ошибкой:-
error: invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’
Что именно происходит в случае "const int&"? Желательно полное объяснение.
Пожалуйста, помогите.
Спасибо