C и C ++ являются наиболее часто используемыми языками программирования, поскольку это основные двери для новичков в мир программирования. Указатели и ссылки - одни из самых полезных возможностей, предоставляемых этими языками. Указатели используются в C и C ++, а ссылки поддерживаются в C ++, Python и других языках.
Указатель против ссылки
Разница между указателем и ссылкой заключается в том, что указатель хранит в себе адрес некоторой другой переменной, в то время как ссылка относится к существующей переменной с другим именем. Указатели хранят адрес любой другой переменной в своей памяти, но ссылки используются в качестве альтернативного идентификатора.
Указатель - это та переменная, значение которой имеет адрес или расположение другой переменной. Их можно инициализировать в любом месте программы с такими операторами, как «*» и «->». Переменную-указатель также можно сделать нулевой, и они также поддерживают повторную инициализацию. Указатели объявляются по базовому типу данных, за которым следуют звездочка и имя указателя.
Ссылка - это та переменная, у которой есть другое имя для уже тонкой переменной программы. Как только ссылочная переменная создана, ее следует инициализировать. Создает псевдоним другой переменной. Оператор & используется для ссылок на дизайн. Они состоят из базового типа данных, за которым следует "&" и имя переменной.
Таблица сравнения указателя и ссылки
Параметры сравнения | Указатель | Ссылка |
Определение | Переменная, которая содержит адрес памяти другой переменной, называется переменной-указателем. | Ссылка - это псевдоним другой переменной, ссылка на нее. |
Пустая ссылка | Указателю может быть присвоено нулевое значение. | Ссылочной переменной не присвоено нулевое значение. |
Синтаксис | Тип данных * PointerName; Где Datatype - это базовый тип данных, а PointerName - это имя объявленного указателя. | Тип данных и имя ссылки = Другая переменная; Где ReferenceName - это имя ссылки, а AnotherVariable - это переменная, на которую имеется ссылка. |
Инициализация | Возможно создание неинициализированных указателей. | Ссылки никогда не могут быть созданы в неинициализированном |
Повторная инициализация | Переменные-указатели могут быть инициализированы снова и снова в программе по мере необходимости. | Ссылочная переменная может быть инициализирована в программе только один раз. |
Что такое указатель?
В двух словах, указатель - это та переменная, которая содержит место в памяти или адрес любой другой переменной в программе. Указатели функционируют в C и C ++. Переменная-указатель хранит расположение адреса переменной-указателя. Переменные-указатели могут быть объявлены, а затем инициализированы переменной, адрес которой должен быть определен.
int * переменная-указатель;
После объявления указателя переменная-указатель присваивается переменной, адрес которой необходимо определить. Вышеупомянутый оператор объявления использует указатель, который будет хранить значение целочисленной переменной.
pointervariable = & a;
Здесь a - целочисленная переменная, используемая в другой стороне программы, адрес которой хранится в указателе переменной. Указатели также допускают повторную инициализацию. Их значения могут быть изменены по мере необходимости.
Что такое ссылка?
Ссылочная переменная - это псевдоним для другой переменной. Другими словами, переменная, которая ссылается на другую вспомогательную переменную программы, рассматривается как ссылочная переменная.
У них есть ограничение: они не могут быть присвоены нулевому значению и не могут быть объявлены, они только инициализируются. После создания ссылки переменная может быть доступна по имени ссылки или по ее исходному имени. Ссылки инициализируются напрямую. Пример,
int & ref = var;
Здесь ссылка - это имя ссылочной переменной, и она указывает на переменную var, которая инициализируется в другой части программы. Когда значения ref и var печатаются, ref и var имеют одинаковое значение. Указатели полезны для экономии памяти, потому что, когда они передаются в качестве аргументов функции, они используют исходную ячейку памяти для каждого вызова функции.
Ссылочные переменные не обеспечивают повторной инициализации, они инициализируются только один раз и уникальны. Ссылки не указывают на переменную, сохраняя ее адрес в отдельной области памяти. Проще говоря, ссылочная переменная - это альтернативное имя уже существующей переменной. Это просто псевдонимы другого имени переменной, на которую нужно ссылаться.
Основные различия между указателем и ссылкой
Вывод
Указатели и ссылки - это обширные концепции с различными приложениями, в основном на C и C ++. Тем не менее, оба они должны использоваться с надлежащими потребностями и требованиями перед внедрением. Ссылочные переменные не требуют повторной инициализации или переназначения, и они экономят место, поскольку создают избыточные множественные локальные копии типов данных при передаче в качестве аргументов функции. Указатели также необходимы, поскольку в них можно хранить нулевые значения.
Ссылка всегда должна относиться к чему-то, должна быть инициализирована и не может быть изменена. Указатели имеют возможность многократного использования. Это дает им возможность повторной инициализации без ссылок.