CS-362: Data Structures Week 6 Part 2

Post on 31-Dec-2015

26 views 0 download

Tags:

description

CS-362: Data Structures Week 6 Part 2. Dr. Jesús Borrego. Topics. Dynamic Data Pointers Address Pointers to different data types Sample programs. Pointer Data Type/Pointer Variables. 325. The type is integer The Name of the integer is A The address is 10280 - PowerPoint PPT Presentation

Transcript of CS-362: Data Structures Week 6 Part 2

scis.regis.edu ● scis@regis.edu

CS-362: Data StructuresWeek 6Part 2

Dr. Jesús Borrego

1

Topics

•Dynamic Data▫Pointers▫Address

•Pointers to different data types•Sample programs

2

Pointer Data Type/Pointer Variables

•The type is integer•The Name of the integer is A•The address is 10280•The value stored in A is 325

int A = 325; 10280

A

3

325

More Pointers

4

Running the program

5

Running the program

6

PointerAndAddress

7

Declaring Pointer Variables

• Syntax:

• Examples:int *p;char *ch;

• These statements are equivalent:int *p;int* p; int * p;

8

Pointer Intro Program (I)

9

Pointer Intro Program (II)

10

Running the program

11

Pointer Intro Program (I)

12

Pointer Intro Program (II)

13

Pointer Intro Program (II)

14

MoreStruct

15

Running the program

16

MoreBeatles (I)

17

MoreBeatles (II)

18

MoreBeatles (III)

19

Running the program

20

PointerSwap

21

Running the Program

22

What happened?

•The swap did not work?•The before and after are the same•Need to make sure we get the values back

to the calling program•It is calling by Value•How do we fix it?

23

Address of Operator (&)

•The ampersand, &, is called the address of operator

•The address of operator is a unary operator that returns the address of its operand

24

PointerSwap2

25

PointerSwap3

26

Running the program (I)

27

Running the program (II)

28

Dynamic Arrays•Dynamic array: array created during

the execution of a program•Example:int *p;p = new int[10];

*p = 25;p++; //to point to next array component*p = 35;

29

stores 25 into the first memory location

stores 35 into the second memory location

Dynamic Arrays (cont'd.)

•C++ allows us to use array notation to access these memory locations

•The statements:p[0] = 25;p[1] = 35;store 25 and 35 into the first and second array components, respectively

30

Dynamic Arrays (cont'd.)

31

Dynamic Arrays (cont'd.)

32

Dynamic Arrays (cont'd.)• The value of list (1000) is constant

– Cannot be altered during program execution– The increment and decrement operations

cannot be applied to list• If p is a pointer variable of type int, then:p = list;copies the value of list, the base address of the array, into p– We can perform ++ and -- operations on p

• An array name is a constant pointer

33

34

Dynamic Arrays (cont'd.)

Functions and Pointers

•A pointer variable can be passed as a parameter either by value or by reference

•To make a pointer a reference parameter in a function heading, use &:void pointerParameters(int* &p, double *q){

. . .}

35

Pointers and Function Return Values•A function can return a value of type

pointer:

int* testExp(...){

. . .}

36

Dynamic Two-Dimensional Arrays•You can create dynamic multidimensional

arrays•Examples:

37

declares board to be an array of four pointers wherein each pointer is of type int

creates the rows of board

declares board to be a pointer to a pointer

PointerArray

38

PointerArray (Cont’d)

39

Running the program

40

PrintArray2D

41

PrintArray2D (Cont’d)

42

PrintArray (Cont’d)

43

Running the Program

44

Resources

•Can search the internet for tutorials on pointers

•On YouTube:•http://www.youtube.com/watch?v=eFWCQ

exfaeg•From Google, search for

▫“C++ pointer tutorial“

45