A Pointer is a variable in C that contains address of another variable.
A pointer variable is denoted by
int *p; //This means p is a pointer to an integer variable
* is Value at Address operator
& is Address of Operator
int x =15; //x is an integer variable
int *ptr1 = &x //Now p contains the address of x..i.e ptr is a pointer to x
int **ptr2 = &ptr1 //And ptr2 contains the address of ptr1..so prt2 is a pointer to a pointer
#include <stdio.h> #include <conio.h> int main() { int x=15; int *ptr1; int **ptr2; ptr1 = &x; //Now ptr contains the address of x ptr2 = &ptr1; //ptr2 contains the address of ptr printf("\nAddress of x = %u", &x); printf("\nValue of x = %d", x); printf("\nValue of x = %d", *(&x)); printf("\n "); printf("\nAddress of ptr1 = %u", &ptr1); printf("\nValue of ptr1 / Address of x = %d", ptr1); printf("\nValue at address pointed by ptr1/Value of x = %d", *ptr1); printf("\n "); printf("\nAddress of ptr2 = %u", &ptr2); printf("\nValue of ptr2 / Address of ptr1 = %d", ptr2); printf("\nValue at address pointed ptr2 / Address of x= %d", *ptr2); printf("\nValue at address pointed by ptr1 which is pointed by ptr2/Value of x = %d", **ptr2); getch(); return 0; }