Professional Documents
Culture Documents
Pointers
Pointers
Pointer
Pointers are variables that contain memory
addresses as their values.
A variable name directly references a value.
A pointer indirectly references a value. Referencing
a value through a pointer is called indirection.
A pointer variable must be declared before it can be
used.
Pointer
ADDR1 Contents1
Memory can be ADDR2
ADDR3
conceptualized as a linear ADDR4
ADDR5
set of data locations. ADDR6
*
Variables reference the *
*
contents of a locations ADDR11 Contents11
When is * used?
sum=0;
i=0;
p=a;
while(i<5)
{
printf("a[%d] %u %u \n",i,p,*p);
sum=sum+*p;
i++;p++;
}
printf("Sum=%d",sum);
getch();
}
E-4
#include<stdio.h>
#include<conio.h>
void main()
{
int b,i,*p,sum;
int a[5]={1,2,3,4,5};
clrscr();
sum=0;
i=0;
p=a;
while(i<5)
{
printf("a[%d] %u %u \n",i,p,*p);
sum=sum+*p;
i++;p++;
}
printf("Sum=%d",sum);
getch();
}
E-5
#include<stdio.h> swap(int *x,int *y)
#include<conio.h>
{
swap(int *,int *);
void main() int z;
{ z=*x;
int a,b,c; *x=*y;
clrscr();
*y=z;
a=10;
b=20; }
printf("Before Swapping \n");
printf("a=%d \t b=%d",a,b);
swap(&a,&b);
printf("After Swapping \n");
printf("a=%d \t b=%d",a,b);
getch();
}
E-6
#include<stdio.h>
#include<conio.h>
int *large(int *,int *);
void main()
{
int a=10;
int b=20;
int *p;
clrscr();
p=large(&a,&b);
printf("%d",*p);
getch();
}
int *large(int *m,int *n)
{
if(*m>*n)
return (m);
else
return (n);
}
If there is a Will, There is a way
Practice makes perfect
Thank You