A pointer is a variable that stores
a memory address of a variable. Pointer can have any name that is legal for
other variable and it is declared in the same fashion like other variables but
is always preceded by ‘ *’ ( asterisk) operator.
Applications of a pointer:
There are a number of reasons for using pointers. Some of them are:
1)
Pointers can be used to pass information back and forth
between a function and its reference point.
2)
Pointers provide a way to return multiple data items
from a function via function arguments.
3)
Pointers provide an alternative way to access
individual array elements.
4)
They increase the execution speed as they refer
address.
Pointer declaration
Pointer variables can be declared as
follows:
Syntax:
data-type * variable_name;
Examples:
int *x; float *f; char *y;
In the first statement, ‘x’ is an
integer pointer and it tells to the compiler that it holds the address of any
integer variable. In the same way ‘f’ is a float pointer which stores the
address of any float variable and ‘y’ is a character pointer that stores the
address of any character variable.
Here * is called pointer or
indirection operator. Normal variable provides direct access to their own
values whereas a pointer provides indirect access to the values of the variable
whose address it stores. The indirection operator (*) is used in two distinct
ways with pointers, declaration and dereference. When the pointer is declared,
the star indicates that it is a pointer, not a normal variable. When the
pointer is dereferenced, the indirection operator indicates that the value at
that memory location stored in the pointer is to be accessed rather than the
address itself. Also note that * is the same operator that can be used as the
multiplication operator. The compiler knows which operator to call, based on
the context. An example
void main( )
{
int v=10, *p; // Here, * indicates p as
pointer
p=&v;
printf(“\n address of v=%u”,p);
printf(“\n value of v=%d”,*p); // Here, *
indicates value at address pointed by p
printf(“\n address of p=%u”,&p);
}
Output:
address of v=65524
value of v=10
address of p=65522
It can be illustrated as
Here v is an integer variable and its value is 10. The variable p is declared as pointer variable. The statement p=&v assigns address of ‘v’ to ‘p’ i.e. ‘p’ is the pointer to variable ‘v’. To access the address and value of ‘v’ pointer ‘p’ can be used. The value of ‘p’ is nothing but address of the variable ‘v’. To display the value stored at that location *p is used. The address of the pointer variable can be accessed using ‘&’ operator. Pointer variable can also be initialized at the time of declaration. It is done as follw.
int a;
int *p=&a;
Comments
Post a Comment