Указатели и ссылки в C ++

Опубликовано: 29 Декабря, 2021
  1. Указатели в C ++: указатели - это символическое представление адресов. Они позволяют программам моделировать вызов по ссылке, а также создавать динамические структуры данных и управлять ими. Его общее объявление на C / C ++ имеет формат:
    Синтаксис:
    тип данных * var_name; 
    

    Пример:

    // ptr может указывать на адрес
    // который содержит данные типа int
    int * ptr;   
    
  2. Подробнее об указателях в C ++: эта статья предоставит более подробное представление о указателях, о том, как они работают, и объяснит математические основы этого. Указатели хранят адрес переменных или место в памяти.
    // Общий синтаксис
    тип данных * var_name; 
    
    // Пример указателя "ptr", который содержит
    // адрес целочисленной переменной или удержаний
    // адрес памяти, значения которой могут
    // доступ к целочисленным значениям через "ptr"
    int * ptr;
  3. Применение указателей в C / C ++: указатель имеет различные приложения, например:
    • Передача аргументов по ссылке: Передача по ссылке служит двум целям.
    • Для доступа к элементам массива: Компилятор внутренне использует указатели для доступа к элементам массива.
    • Чтобы вернуть несколько значений: например, при возврате квадрата и квадратного корня из чисел.
    • Динамическое выделение памяти: мы можем использовать указатели для динамического выделения памяти. Преимущество динамически выделяемой памяти в том, что она не удаляется, пока мы не удалим ее явно.
    • Для реализации структур данных.
    • Для программирования на системном уровне, когда полезны адреса памяти.
  4. Возможности и использование указателей в C / C ++: указатели разделяют несколько важных функций, таких как экономия места в памяти, они используются для динамического распределения памяти, используются для обработки файлов и т. Д. Указатели хранят адрес переменных или расположение в памяти.
    Синтаксис:
     тип данных * var_name;

    Пример: указатель «ptr» содержит адрес целочисленной переменной или адрес памяти, значения которой могут быть доступны как целые значения через «ptr».

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