Указатели и ссылки в C ++
Опубликовано: 29 Декабря, 2021
- Указатели в C ++: указатели - это символическое представление адресов. Они позволяют программам моделировать вызов по ссылке, а также создавать динамические структуры данных и управлять ими. Его общее объявление на C / C ++ имеет формат:
Синтаксис:тип данных * var_name;
Пример:
// ptr может указывать на адрес // который содержит данные типа int int * ptr;
- Подробнее об указателях в C ++: эта статья предоставит более подробное представление о указателях, о том, как они работают, и объяснит математические основы этого. Указатели хранят адрес переменных или место в памяти.
// Общий синтаксис тип данных * var_name; // Пример указателя "ptr", который содержит // адрес целочисленной переменной или удержаний // адрес памяти, значения которой могут // доступ к целочисленным значениям через "ptr" int * ptr;
- Применение указателей в C / C ++: указатель имеет различные приложения, например:
- Передача аргументов по ссылке: Передача по ссылке служит двум целям.
- Для доступа к элементам массива: Компилятор внутренне использует указатели для доступа к элементам массива.
- Чтобы вернуть несколько значений: например, при возврате квадрата и квадратного корня из чисел.
- Динамическое выделение памяти: мы можем использовать указатели для динамического выделения памяти. Преимущество динамически выделяемой памяти в том, что она не удаляется, пока мы не удалим ее явно.
- Для реализации структур данных.
- Для программирования на системном уровне, когда полезны адреса памяти.
- Возможности и использование указателей в C / C ++: указатели разделяют несколько важных функций, таких как экономия места в памяти, они используются для динамического распределения памяти, используются для обработки файлов и т. Д. Указатели хранят адрес переменных или расположение в памяти.
Синтаксис:тип данных * var_name;
Пример: указатель «ptr» содержит адрес целочисленной переменной или адрес памяти, значения которой могут быть доступны как целые значения через «ptr».
int * ptr;
- Указатель this в C ++ Указатель this передается как скрытый аргумент всем вызовам нестатических функций-членов и доступен как локальная переменная в теле всех нестатических функций. Указатель this недоступен в статических функциях-членах, поскольку статические функции-члены могут вызываться без какого-либо объекта (с именем класса). Даже если существует только один член каждой функции, который используется несколькими объектами, компилятор предоставляет неявный указатель вместе с именами функций как 'this'.
Декларация:это-> х = х;
- Ссылки в C ++: когда переменная объявляется как ссылка, она становится альтернативным именем для существующей переменной. Переменную можно объявить как ссылку, поставив в объявлении символ «&». Есть 3 способа передать аргументы C ++ функции:
- вызов по стоимости
- вызов по ссылке с аргументом указателя
- вызов по ссылке со ссылочным аргументом
- Указатели и ссылки в C ++: в этой статье обосновываются различия между указателем и ссылкой. И ссылки, и указатели могут использоваться для изменения локальных переменных одной функции внутри другой функции. Оба они также могут использоваться для сохранения копирования больших объектов при передаче в качестве аргументов в функции или возвращении из функций, чтобы получить повышение эффективности.
Несмотря на указанное выше сходство, между ссылками и указателями есть следующие различия.- Указатель может быть объявлен недействительным, но ссылка никогда не может быть недействительной.
Пример:int a = 10; void * aa = & a ;. // действительно void & ar = a; // неверно
- Ссылки менее эффективны, чем указатели
- После того, как ссылка создана, ее нельзя впоследствии использовать для ссылки на другой объект; его нельзя переустановить. Часто это делается с помощью указателей.
- Ссылки не могут быть NULL. Указатели часто имеют значение NULL, чтобы указать, что они не указывают на какой-либо действительный объект.
- Ссылка должна быть инициализирована при объявлении. Для указателей такого ограничения нет.
- Указатель может быть объявлен недействительным, но ссылка никогда не может быть недействительной.
- Передача по указателю или передача по ссылке в C ++: в C ++ мы можем передавать параметры функции либо указателями, либо по ссылке. В обоих случаях мы получаем одинаковый результат. Итак, что следует предпочесть и почему?
- Передача ссылки на указатель в C ++: в этой статье давайте сравним использование «указателя на указатель» и «ссылки на указатель» в некоторых случаях.
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .