Программирование. Принципы и практика использования C++ Исправленное издание, стр. 407
Временная переменная, связанная с локальной ссылкой, существует столько же, сколько и сама ссылка. Рассмотрим пример.
const char* string_tbl[] = { "Mozart", "Grieg", "Haydn", "Chopin" };const char* f(int i) { return string_tbl[i]; }void g(string s){}void h(){ const string& r = f(0); // связываем временную строку // с ссылкой r g(f(1)); // создаем временную строку // и передаем ее string s = f(2); // инициализируем s временной строкой cout << "f(3): " << f(3) // создаем временную строку // и передаем ее << "s: " << s << "r: " << r << '\n';}Результат выглядит следующим образом:
f(3): Chopin s: Haydn r: MozartВременные строки, сгенерированные при вызовах
f(1)f(2)f(3)f(0)rh()A.5. Выражения
В этом разделе описываются операторы языка C++. Мы используем обозначения, которые считаем мнемоническими, например:
mTpxvlvaluelst
Обратите внимание на то, что члены могут быть сами вложенными, поэтому можем получить такие выражения, как
N::C::m
Оператор
typeid
Объекты, на которые ссылается указатель
pdelete pdelete[] pnew(T)x
Эти инструкции в книге не рассматриваются; обратитесь к более сложным учебникам.

Если
y==0x/yx%yxyx%y

Для встроенных типов операторы
>><<iostream
Результатом оператора сравнения является значение типа
bool
Обратите внимание на то, что
x!=y!(x==y)bool
Оператор
&^|~>><<abunsigned chara&bunsigned char&ab