POINTER IN C
PRESENTED BY
M.LAVANYA
M.Sc[CS&IT]
NSCAS
POINTER
Pointer is a variable that stores the address of another
variable. A pointer in c is used to allocate memory
dynamically at run time. The pointer variable might be
belonging to any of the data type such as int, float, char,
double, short etc.
Pointer syntax:
data_type*var_name;
Example:
int*p; char*p;
DECLARING POINTER VARIABLE
Pointers variables contain addresses that belong to a separate data
type, they must be declared as pointers before we use them. The
declaration of a pointer variable takes the following form
data_type * pt_name;
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 address operator & is used to determined the
address of a variable. The & returns the address of the variable.
EXAMPLE:
int a=10;
int*ptr; //pointer declaration
ptr=&a; //pointer initialization
or
int*ptr=&a; //initialization and declaration together
EXAMPLE PROGRAM
#include <stdio.h>
int main() output:
{ 50
int *ptr, q; //declaration
q = 50;
ptr = &q; //intialization
printf("%d", *ptr); //display q's value using ptr variable
printf("%d", *ptr);
return 0;
}
CHAIN OF POINTER
• It is possible to make a pointer to point to another pointer, thus
creating a chain of pointers.
POINTER EXPRESSIONS
The pointer variable can be used in expressions. (eg) p1 and p2 are
properly declared and initialized pointer, then the following
statements are valid.
y = * p1 * *p2;
sum = sum + * p1;
* p2 = * p2 + 10;
SYNTAX:
data_typa*ptr=expression
RULES OF POINTER OPERATIONS
• A pointer variable can be assigned the address of another
variable.
• A pointer variable can be assigned the values of another
pointer variable.
• A pointer variable can be initialized with NULL or zero
value.
• A pointer variable can be pre-fixed or post-fixed with
increment or decrement operators.
• An integer value may be added or subtracted from a pointer
variable.
ARRAY OF POINTER
#include <stdio.h>
const int MAX = 3;
int main ()
{ Output:
int var[] = {10, 100, 200}; Value of var[0] = 10
int i, *ptr[MAX]; Value of var[1] = 100
for ( i = 0; i < MAX; i++) Value of var[2] = 200
{
ptr[i] = &var[i]; /* assign the address of integer. */
}
for ( i = 0; i < MAX; i++)
{
printf("Value of var[%d] = %dn", i, *ptr[i] );
}
return 0;
}
POINTER AS FUNCTION ARGUMENTS
When we pass addresses to a function, the parameters receiving the
addresses should be pointers. The process of calling a function using
pointers to pass the addresses of variables is known as ’call by reference’
.
for example:
main()
{
int *x;
*x=20;
change(&x); //call by reference or address
printf(“%dn”,x);
}
change(int *p)
{
*p = *p + 10;
}
EXAMPLE PROGRAM
#include <stdio.h>
Void exchange(int *, int*); //prototype
Value of a is 10 Output:
main() Before exchange: x=100 y=200
{ After exchange : x = 200 y = 100
int x,y;
X=100;
Y=200;
Printf(“Before exchange:x=%d y=%d”,x,y);
exchange(&x,&y); //call
Printf(“After exchange:x=%d y=%d”,x,y);
}
Exchange(int*a,int*b)
{
int t;
t=*a; //assign the value at address a to t
*a=*b;
*b=t;
return 0;
}
POINTER AND STRUCTURE
• Address of Pointer variable can be obtained using ‘&’ operator.
• Address of such Structure can be assigned to the Pointer variable .
• Pointer Variable which stores the address of Structure must be
declared as Pointer to Structure .
Pointer to Structure Syntax :
struct student_database
{
char name[10];
int roll;
int marks;
}stud1;
struct student_database *ptr;
ptr = &stud1;
EXAMPLE PROGRAM
#include <stdio.h>
int main()
{
struct my_structure Output
{ NAME : Raji
char name[20]; NUMBER: 35
int number; RANK: 1
int rank;
};
struct my_structure variable = {“Raji",35,1};
struct my_structure *ptr;
ptr = &variable;
printf("NAME: %sn",ptr->name);
printf("NUMBER: %dn",ptr->number);
printf("RANK: %d",ptr->rank);
return 0;
}
Pointer in c

Pointer in c

  • 1.
    POINTER IN C PRESENTEDBY M.LAVANYA M.Sc[CS&IT] NSCAS
  • 2.
    POINTER Pointer is avariable that stores the address of another variable. A pointer in c is used to allocate memory dynamically at run time. The pointer variable might be belonging to any of the data type such as int, float, char, double, short etc. Pointer syntax: data_type*var_name; Example: int*p; char*p;
  • 3.
    DECLARING POINTER VARIABLE Pointersvariables contain addresses that belong to a separate data type, they must be declared as pointers before we use them. The declaration of a pointer variable takes the following form data_type * pt_name;
  • 4.
    INITIALIZATION OF POINTERVARIABLE 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 address operator & is used to determined the address of a variable. The & returns the address of the variable. EXAMPLE: int a=10; int*ptr; //pointer declaration ptr=&a; //pointer initialization or int*ptr=&a; //initialization and declaration together
  • 5.
    EXAMPLE PROGRAM #include <stdio.h> intmain() output: { 50 int *ptr, q; //declaration q = 50; ptr = &q; //intialization printf("%d", *ptr); //display q's value using ptr variable printf("%d", *ptr); return 0; }
  • 6.
    CHAIN OF POINTER •It is possible to make a pointer to point to another pointer, thus creating a chain of pointers.
  • 7.
    POINTER EXPRESSIONS The pointervariable can be used in expressions. (eg) p1 and p2 are properly declared and initialized pointer, then the following statements are valid. y = * p1 * *p2; sum = sum + * p1; * p2 = * p2 + 10; SYNTAX: data_typa*ptr=expression
  • 8.
    RULES OF POINTEROPERATIONS • A pointer variable can be assigned the address of another variable. • A pointer variable can be assigned the values of another pointer variable. • A pointer variable can be initialized with NULL or zero value. • A pointer variable can be pre-fixed or post-fixed with increment or decrement operators. • An integer value may be added or subtracted from a pointer variable.
  • 9.
    ARRAY OF POINTER #include<stdio.h> const int MAX = 3; int main () { Output: int var[] = {10, 100, 200}; Value of var[0] = 10 int i, *ptr[MAX]; Value of var[1] = 100 for ( i = 0; i < MAX; i++) Value of var[2] = 200 { ptr[i] = &var[i]; /* assign the address of integer. */ } for ( i = 0; i < MAX; i++) { printf("Value of var[%d] = %dn", i, *ptr[i] ); } return 0; }
  • 10.
    POINTER AS FUNCTIONARGUMENTS When we pass addresses to a function, the parameters receiving the addresses should be pointers. The process of calling a function using pointers to pass the addresses of variables is known as ’call by reference’ . for example: main() { int *x; *x=20; change(&x); //call by reference or address printf(“%dn”,x); } change(int *p) { *p = *p + 10; }
  • 11.
    EXAMPLE PROGRAM #include <stdio.h> Voidexchange(int *, int*); //prototype Value of a is 10 Output: main() Before exchange: x=100 y=200 { After exchange : x = 200 y = 100 int x,y; X=100; Y=200; Printf(“Before exchange:x=%d y=%d”,x,y); exchange(&x,&y); //call Printf(“After exchange:x=%d y=%d”,x,y); } Exchange(int*a,int*b) { int t; t=*a; //assign the value at address a to t *a=*b; *b=t; return 0; }
  • 12.
    POINTER AND STRUCTURE •Address of Pointer variable can be obtained using ‘&’ operator. • Address of such Structure can be assigned to the Pointer variable . • Pointer Variable which stores the address of Structure must be declared as Pointer to Structure . Pointer to Structure Syntax : struct student_database { char name[10]; int roll; int marks; }stud1; struct student_database *ptr; ptr = &stud1;
  • 13.
    EXAMPLE PROGRAM #include <stdio.h> intmain() { struct my_structure Output { NAME : Raji char name[20]; NUMBER: 35 int number; RANK: 1 int rank; }; struct my_structure variable = {“Raji",35,1}; struct my_structure *ptr; ptr = &variable; printf("NAME: %sn",ptr->name); printf("NUMBER: %dn",ptr->number); printf("RANK: %d",ptr->rank); return 0; }