DEV Community

Yarakaraju Jahnavi
Yarakaraju Jahnavi

Posted on • Edited on

POINTERS IN C-LANGUAGE

                       POINTERS IN C
Enter fullscreen mode Exit fullscreen mode

•Every variable is a memory location and every memory location has its address defined which can be accessed using ampersand (&) operator, which denotes an address in memory.

•A pointer is a variable whose value is the address of another variable, i.e., direct address of the memory location. Like any variable or constant, you must declare a pointer before using it to store any variable address.

•The general form of a pointer variable declaration is:
type *var-name;

Here,
-- type is the pointer's base type (it must be a valid C
datatype).
-- var-name is the name of the pointer variable.
-- * used to declare a pointer.

•Some of the valid pointer declarations are as follows −
int ip; / pointer to an integer /
double *dp; /
pointer to a double /
float *fp; /
pointer to a float /
char *ch /
pointer to a character */

•The actual data type of the value of all pointers, whether integer, float, character, or otherwise, is the same, a long hexadecimal number that represents a memory address. The only difference between pointers of different data types is the data type of the variable or constant that the pointer points to.

USAGE OF POINTERS:

(a) We define a pointer variable.
(b) Assign the address of a variable to a pointer.
(c) Finally access the value at the address available in the pointer variable.
•This is done by using unary operator * that returns the value of the variable located at the address specified by its operand.
•Example:
#include
int main ()
{
int var = 20; /* actual variable declaration /
int *ip; /
pointer variable declaration /
ip = &var; /
store address of var in pointer variable*/
printf("Address of var variable: %x\n", &var );
/* address stored in pointer variable /
printf("Address stored in ip variable: %x\n", ip );
/
access the value using the pointer */
printf("Value of *ip variable: %d\n", *ip );
return 0;
}

•When the above code is compiled and executed, it produces the following result −
-- Address of var variable: bffd8b3c
-- Address stored in ip variable: bffd8b3c
-- Value of *ip variable: 20

NULL POINTERS

•It is always a good practice to assign a NULL value to a pointer variable in case you do not have an exact address to be assigned. This is done at the time of variable declaration. A pointer that is assigned NULL is called a null pointer.

•The NULL pointer is a constant with a value of zero defined in several standard libraries. Consider the following program −

•EXAMPLE
#include
int main ()
{
int *ptr = NULL;
printf("The value of ptr is : %x\n", ptr );
return 0;
}

•When the above code is compiled and executed, it produces the following result −

--The value of ptr is 0

--In most of the operating systems, programs are not permitted
to access memory at address 0 because that memory is reserved
by the operating system.
--However, the memory address 0 has special significance; it
signals that the pointer is not intended to point to an
accessible memory location. But by convention, if a pointer
contains the null (zero) value, it is assumed to point to
nothing.
--To check for a null pointer, you can use an 'if' statement as
follows −

    if(ptr)     /* succeeds if p is not null */
    if(!ptr)    /* succeeds if p is null */
Enter fullscreen mode Exit fullscreen mode

Top comments (0)