Что ссылка является переменной в C++?

Каково было бы краткое определение ссылочной переменной в C++?

27
задан Peter Mortensen 7 July 2015 в 22:08
поделиться

5 ответов

Первый абзац статьи Википедии может легко служить кратким определением:

В языке программирования C ++ ссылка - это простой ссылочный тип данных, который менее эффективен, но более безопасен, чем тип указателя. унаследовано от C.

И цитата из той же статьи:

Ссылки C ++ отличаются от указателей несколькими существенными способами:

  • Невозможно напрямую ссылаться на объект ссылки после того, как он определен; любое вхождение его имени относится непосредственно к объекту, на который он ссылается.

  • После того, как ссылка создана, она не может быть использована для ссылки на другой объект; его нельзя переустановить. Часто это делается с помощью указателей.

  • Ссылки не могут быть нулевыми, тогда как указатели могут; каждая ссылка относится к какому-либо объекту, хотя она может быть или недействительной.

  • Ссылки не могут быть неинициализированы. Поскольку повторно инициализировать ссылку невозможно, они должны быть инициализированы сразу после создания. В частности, локальные и глобальные переменные должны быть инициализированы там, где они определены, а ссылки, которые являются членами данных экземпляров класса, должны быть инициализированы в списке инициализаторов конструктора класса.

Дополнительная литература:

6
ответ дан 28 November 2019 в 04:46
поделиться

Это переменная, которая ссылается на другую:

int foo;
int& bar = foo;

bar теперь является ссылкой, то есть bar содержит расположение памяти, где foo ложь.

См. здесь для получения дополнительной информации.

3
ответ дан 28 November 2019 в 04:46
поделиться

Ссылка - это объект, который является псевдонимом для другого объекта .

Ссылка не является переменной , поскольку переменная вводится только при объявлении объекта . Объект - это область хранения, и в C ++ ссылки (не обязательно) занимают какое-либо хранилище.

Поскольку объекты и ссылки представляют собой отдельные группы сущностей в C ++, термин «ссылочная переменная» не имеет смысла.

19
ответ дан 28 November 2019 в 04:46
поделиться

Ссылочные переменные позволяют двум именам переменных обращаться к одному и тому же месту в памяти:

int main()
{
    int var1;

    // var2 is a reference variable, holds same value as var1

    int &var2 = var1;
    var1 = 10;

    std::cout << "var1 = " << var1 << std::endl;
    std::cout << "var2 = " << var2 << std::endl;
}

Ресурс: ССЫЛКА

2
ответ дан 28 November 2019 в 04:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: