The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

C Pointer to Pointer

A pointer variable containing the address of another pointer variable is known as pointer to pointer or a chain of pointers. The pointer variable that holds the address of another variable should be declared with additional asterisk (*).

pointer to pointer in c

Pointer To Pointer First Look

pointer-pointer
int i = 5, *ptr;
int **ptrptr;     //declaration of pointer with additional asterisk
ptr = &i;
ptrptr = &ptr;     //assigning a pointer variable address to pointer (ptrptr)

C Program - Pointer to Pointer

pointer-pointer.c
#include <stdio.h>
int main()
{
int i = 5;
int *ptr, **ptrptr;
ptr = &i;
ptrptr = &ptr;
printf("The value of i = %d ", i);
printf("\nThe value of ptr = %d ", *ptr);
printf("\nThe value of ptrptr = %d ", **ptrptr);
return 0;
}
  • The value of i = 5
  • The value of ptr = 5
  • The value of ptrptr = 5

Note:

In the above program, ptr is declared as an integer pointer variable. The variable ptrptr is also declared as integer pointer variable to hold another pointer variable ptr.

C Program - Pointer to Pointer in Array

pointer-pointer-array.c
#include <stdio.h>
void function(char**);
int main()
{
char *arr[] = { "ant", "bat", "cat", "dog", "egg", "fly" };
function(arr);
return 0;
}
void function(char **ptr)
{
char *ptr1;
ptr1 = (ptr += sizeof(int))[-2];
printf("%s\n", ptr1);
}
  • cat

Note:

Here function() gives the address of first value("ant") in an arr. This address is summationed by a sizeof(int) which is 4. Now the address in ptr points the value eggs, which is then reduced by 2. Now it points to the value cat which is finally displayed.

Purpose Of Pointer To Pointer

  • Whenever you are insisted to declare pointer array, then you have to go for pointer to pointer variable to access the value in an array.

Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report