Рубрики

Двойной указатель (указатель на указатель) в C

Предварительное условие: указатели в C и C ++

Мы уже знаем, что указатель указывает на место в памяти и, таким образом, используется для хранения адреса переменных. Итак, когда мы определяем указатель на указатель. Первый указатель используется для хранения адреса переменной. И второй указатель используется для хранения адреса первого указателя. Вот почему они также известны как двойные указатели.

Как объявить указатель на указатель в C?
Объявление Pointer to Pointer аналогично объявлению указателя в C. Разница в том, что мы должны поставить дополнительный «*» перед именем указателя.
Синтаксис :

int **ptr;    // declaring double pointers

Ниже диаграмма объясняет понятие двойных указателей:

Приведенная выше диаграмма показывает представление в памяти указателя на указатель. Первый указатель ptr1 хранит адрес переменной, а второй указатель ptr2 хранит адрес первого указателя.

Позвольте нам понять это более четко с помощью следующей программы:

#include <stdio.h>

  
// C программа для демонстрации указателя на указатель

int main()

{

    int var = 789;

  

    // указатель на var

    int *ptr2;

  

    // двойной указатель для ptr2

    int **ptr1;

  

    // сохраняем адрес var в ptr2

    ptr2 = &var;

      

    // Сохранение адреса ptr2 в ptr1

    ptr1 = &ptr2;

      

    // Отображение значения переменной используя

    // одинарные и двойные указатели

    printf("Value of var = %d\n", var );

    printf("Value of var using single pointer = %d\n", *ptr2 );

    printf("Value of var using double pointer = %d\n", **ptr1);

    

  return 0;

Выход:

Value of var = 789
Value of var using single pointer = 789
Value of var using double pointer = 789

Похожие сообщения:
Указатель на функцию в C

Эта статья предоставлена Суровым Агарвалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Двойной указатель (указатель на указатель) в C

0.00 (0%) 0 votes