Pointers in c

1,402 views
1,361 views

Published on

Published in: Technology, Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,402
On SlideShare
0
From Embeds
0
Number of Embeds
155
Actions
Shares
0
Downloads
82
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Pointers in c

  1. 1. ‘ *’ , ‘&’  Pointers In C
  2. 2. About me Sriram kumar . K III rd year CSE Email - Sri2k42002@yahoo.co.in
  3. 3. What is a Pointer ?
  4. 4. X1000 X1004 X1008 X100c x1010 Who does a memory look like ? X1000 X1001 X1002 X1003 Address Locations
  5. 5. Operators used in Pointers * & Address Dereferencing (Address of) (Value of)
  6. 6. Int i=3; Address of ‘i’ Value of ‘i’ X1000 x1004 x1008 x100c x1010 x1014 variable i 3 (Value of i) Address of i ‘ &i’ ‘ *i’ The value ‘3’ is saved in the memory location ‘x100c’
  7. 7. Syntax for pointers (pointer type declaration) type *identifier ; Example Char *cp ; Int *ip ; Double *dp ;
  8. 8. Pointer Assignment Int i = 1 , *ip ; //pointer declaration ip = &i ; //pointer assignment *ip = 3 ; //pointer assignment
  9. 9. Pointer Arithmetic Lets take this example program #include<stdio.h> Void main() { Int a [5]={1,2,3,4,5} , b , *pt ; pt = &a[0]; pt = pt + 4 ; b=a[0] ; b+=4 ; } a[0] X1000 x1004 x1008 x100c x1010 X1000 x1004 x1008 x100c x1010 a[2] a[1] a[4] a[3] a[0] a[2] a[1] a[4] a[3] b b = 1 b=1+4 b= 5 pt
  10. 10. Lets Take an Example and See how pointers work #include<stdio.h> Void main() { Int i=3; Int *j; j=&i; Printf(“i=%d”i); Printf(“*j=%d”*j); }
  11. 11. X1000 x1004 x1008 x100c x1010 x1014 3 Memory variables Int i Int *j Int i=3; Int *j; j = &i; x100c Create an integer variable ‘i’ and initialize it to 3 Create a pointer variable ‘j’- create value of ‘j’ Initialize the pointer value of ‘j’ to the address of ‘i’
  12. 12. X1000 x1004 x1008 x100c x1010 x1014 Memory variables Int i Int *j Output screen Printf(“i=%d” i); We know j=&i So  *j=*(&i) value of (address of i) (i.e.) value in address (x100c) Printf(“i=%d” i); i=3 *j=3 Printf(“*j=%d” *j); Printf(“*j=%d” *j); x100c 3 3
  13. 13. Void main() { int num=10; int* pnum=NULL; pnum = &num; *pnum += 20; printf(&quot; Number = %d&quot;, num); printf(&quot; Pointer Number = %d&quot;, *pnum); } Predict the output of this code
  14. 14. Number = 10 Pointer Number = 30

×