Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 172 DATA STRUCTURES.

Similar presentations


Presentation on theme: "CSC 172 DATA STRUCTURES."— Presentation transcript:

1 CSC 172 DATA STRUCTURES

2 POINTERS

3 POINTERS int a, b; a = 7; b = 11;

4 POINTERS int a, b; a = 7; b = 11; a 7 b 11

5 POINTERS int a, b; a = 7; b = 11; a 7 b 11 x01b5 xf37a

6 int a, b; a = 7; b = 11; &a ; //the address of a a 7 b 11 x01b5 xf37a

7 int *p ; //declaring a pointer p x0427 a 7 b 11 x01b5 xf37a

8 int *p p = &a ; p x01b5 x0427 a 7 b 11 x01b5 xf37a

9 int *p p = &a ; int c = *p ; 7 x015b 7 11 c p x219b x0427 a b x01b5
xf37a

10 Function Calls Call by value – you get a copy of the data

11 swap1 (x, y ) int x, y ; { int temp ; temp = x ; x = y; y = temp; } swap2 (px, py ) int *px, *py;{ int temp ; temp = *px ; *px = *py; *py = temp; }

12 COMPUTER MEMORY: A BIG ARRAY

13 ADDRESS CONTENT x[0] x0000 x[1] x0001 x[2] x0002 . . . . . .

14 . . . x[1] = 5; . . . ADDRESS CONTENT x[0] x0000 x[1] x0001 5

15 . . . x[3] = x[1]; . . . ADDRESS CONTENT x[0] x0000 x[1] x0001 5

16 . . . x[4] = &(x[1]); . . . ADDRESS CONTENT x[0] x0000 x[1] x0001 5

17 . . . x[6] = *(x[4]); . . . ADDRESS CONTENT x[0] x0000 x[1] x0001 5

18 int x = 1; int y = 2; int *ip ; int z[10];

19 . . . int x = 1; int y = 2; int *ip ; int z[10]; x0bc1 x0bc1 1 x0bc2 2

20 . . . int x = 1; int y = 2; int *ip ; int z[10]; x0bc1 x0bc1 1 x0bc2 1
ip = &x; y = *ip; . . .

21 . . . int x = 1; int y = 2; int *ip ; int z[10]; x0bc1 x0bc1 1 x0bc2
x0bc1 x0bc1 1 x0bc2 x0bc4 x0bc3 x0bc4 ip = &x; y = *ip; *ip = 0 ; ip = &z[10]; . . .

22 Arrays are pointers

23 ARRAYS ARE POINTERS int a[3], *p; a x01b5 p x01b6 xf37a x01b7

24 ARRAYS ARE POINTERS int a[3], *p; p = &a[0]; a p x01b5 x01b5 x01b6
xf37a x01b7

25 ARRAYS ARE POINTERS int a[3], *p; p = &a[0]; p = a; // same a p x01b5
xf37a x01b7

26 ARRAYS ARE POINTERS a[0] = 13; *p = 13; 13 a p x01b5 x01b5 x01b6 xf37a

27 ARRAYS ARE POINTERS a[1] = 29; *(p+1) = 29; 13 29 a p x01b5 x01b5
xf37a x01b7

28 ARRAYS ARE POINTERS a[2] = 31; *(p+2) = 31; 13 29 31 a p x01b5 x01b5
xf37a 31 x01b7

29 int k; for(k=0;k<3;k++){ a[k] = k * k; } for (k=0;k<3;k++) *(p+k) = k * k ;


Download ppt "CSC 172 DATA STRUCTURES."

Similar presentations


Ads by Google