@flash661

Почему так можно делать?

Я тут заметил кое-что.
int sqr(const int &x)
{
    return x*x;
}

int main(int argc, char* argv[])
{
    cout<<sqr(4);
    return 0;
}

Заметил что при const int &x можно передавать числа. Почему при const int &x можно передавать числа?Это же все таки ссылка на адрес,а число в памяти то не лежит,мы не создавали переменную.
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
const int &x
Это параметр функции и он не обязательно должен быть именем переменной, можно передать значение , плюс оно будет являться константой
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TheCalligrapher
Константные ссылки можно привязывать к prvalue, в каковом случае язык сам для вас материализует временный объект, проинициализирует его правильным значением и привяжет к нему ссылку. В вашем примере этот временный объект будет автоматически уничтожен по завершении cout<<sqr(4);.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы