Tuesday, 21 March 2017

Introduction to Pointers

Pointers are variables that hold address of another variable of same data type.

Pointers are one of the most distinct and exciting features of C language. It provides power and flexibility to the language. Although pointer may appear little confusing and complicated in the beginning, but trust me its a powerful tool and handy to use once its mastered.


ð Benefit of using pointers:

  • Pointers are more efficient in handling Array and Structure.
  • Pointer allows references to function and thereby helps in passing of function as arguments to other function.
  • It reduces length and the program execution time.
  • It allows C to support dynamic memory management.

ð Concept of Pointer:

Whenever a variable is declared, system will allocate a location to that variable in the memory, to hold value. This location will have its own address number.

Let us assume that system has allocated memory location 80F for a variable a.

int a = 10 ;


We can access the value 10 by either using the variable name a or the address 80F. Since the memory addresses are simply numbers they can be assigned to some other variable. The variable that holds memory address are called pointer variables. A pointer variable is therefore nothing but a variable that contains an address, which is a location of another variable. Value of pointer variable will be stored in another memory location.

ð Declaring a pointer variable:

General syntax of pointer declaration is,

data-type *pointer_name;

Data type of pointer must be same as the variable, which the pointer is pointing. void type pointer works with all data types, but isn't used often.

ð Initialization of Pointer variable:

Pointer Initialization is the process of assigning address of a variable to pointer variable. Pointer variable contains address of variable of same data type. In C language address operator & is used to determine the address of a variable. The & (immediately preceding a variable name) returns the address of the variable associated with it.

int a = 10 ;
int *ptr ;        //pointer declaration
ptr = &a ;        //pointer initialization
or,
int *ptr = &a ;      //initialization and declaration together

Pointer variable always points to same type of data.

float a;
int *ptr;
ptr = &a;    //ERROR, type mismatch

ð Dereferencing of Pointer:

Once a pointer has been assigned the address of a variable. To access the value of variable, pointer is dereferenced, using the indirection operator *.
int a,*p;
a = 10;
p = &a;  

printf("%d",*p);    //this will print the value of a.

printf("%d",*&a);  //this will also print the value of a.

printf("%u",&a);  //this will print the address of a.

printf("%u",p);  //this will also print the address of a.

printf("%u",&p);  //this will also print the address of p.

Get the Amazing C Programming Tutorial Videos at YouTube => Semicolon Programming

No comments:

Post a Comment