Pointers and Array-Based Lists - PowerPoint PPT Presentation

About This Presentation
Title:

Pointers and Array-Based Lists

Description:

Learn about the pointer data type and pointer variables ... Address of operator: Ampersand, & Dereferencing operator: Asterisk, * Data Structures Using C ... – PowerPoint PPT presentation

Number of Views:218
Avg rating:3.0/5.0
Slides: 48
Provided by: manasi67
Learn more at: https://www2.kenyon.edu
Category:

less

Transcript and Presenter's Notes

Title: Pointers and Array-Based Lists


1
Chapter 3
  • Pointers and Array-Based Lists

2
Chapter Objectives
  • Learn about the pointer data type and pointer
    variables
  • Explore how to declare and manipulate the pointer
    variables
  • Learn about the address of operator and
    dereferencing operator
  • Discover dynamic variables
  • Examine how to use the new and delete operators
    to manipulate dynamic variables

3
Chapter Objectives
  • Learn about pointer arithmetic
  • Discover dynamic arrays
  • Become aware of the shallow and deep copies of
    data
  • Discover the peculiarities of classes with
    pointer data members
  • Explore how dynamic arrays are used to process
    lists

4
Pointer Data Types and Pointer Variables
  • Pointer variable variable whose content is a
    memory address
  • Syntax to declare pointer variable
  • dataType identifier
  • Address of operator Ampersand,
  • Dereferencing operator Asterisk,

5
Pointers
  • Statements
  • int p
  • int num

6
Pointers
7
Pointers
8
Pointers
9
Pointers
  • Summary of preceding diagrams
  • p, p, and p all have different meanings
  • p means the address of p
  • p means the content of p
  • p means the content pointed to by p, that is
    pointed to by the content of memory location

10
Pointers
11
Pointers
x 50
p x
12
Pointers
p 38
13
Classes, structs, and Pointer Variables
  • The syntax for accessing a class (struct) member
    using the operator -gt is
  • pointerVariableName-gtclassMemberName
  • Therefore, the statement
  • (studentPtr).gpa 3.9
  • is equivalent to the statement
  • studentPtr-gtgpa 3.9

14
Classes, structs, and Pointer Variables
15
Classes, structs, and Pointer Variables
16
Syntax to use operator new
  • new dataType //to allocate a single
    variable
  • new dataTypeintExp //to allocate an array of
    variables

17
Syntax to use operator delete
  • delete pointer //to destroy a single
    dynamic variable
  • delete pointer //to destroy a
    dynamically created array

18
Operations on pointer variables
  • Assignment operations
  • Relational operations
  • Limited arithmetic operations

19
Functions and Pointers
  • void example(int p, double q)
  • .
  • .
  • .

20
Pointers and Function Return Pointers
  • int testExp(...)
  • .
  • .
  • .
  • is a pointer of the type int.

21
Shallow Versus Deep Copy and Pointers
22
Shallow Versus Deep Copy and Pointers
23
Shallow Versus Deep Copy and Pointers
  • second new int10
  • for(int j 0 j lt 10 j)
  • secondj firstj

24
Classes and Pointers Some Peculiarities
  • class pointerDataClass
  • public
  • ...
  • private
  • int x
  • int lenP
  • int p
  • pointerDataClass objectOne
  • pointerDataClass objectTwo

25
Classes and Pointers Some Peculiarities
26
Destructor
27
Destructor
  • pointerDataClasspointerDataClass()
  • delete p
  • class pointerDataClass
  • public
  • pointerDataClass()
  • ...
  • private
  • int x
  • int lenP
  • int p

28
Assignment Operator
29
Assignment Operator
30
Assignment Operator
31
Overloading the Assignment Operator
  • Function Prototype (to be included in the
    definition of the class)
  • const className operator(const className)
  • Function Definition
  • const className classNameoperator(const
    className rightObject)
  • //local declaration, if any
  • if(this ! rightObject) //avoid
    self-assignment
  • //algorithm to copy rightObject into
    this object
  • //return the object assigned
  • return this

32
Overloading the Assignment Operator
  • Definition of function operator
  • Only one formal parameter
  • Formal parameter generally const reference to
    particular class
  • Return type of function is reference to
    particular class

33
Copy Constructor
34
Copy Constructor
35
Copy Constructor
36
Copy Constructor
  • If a class has pointer data members
  • During object declaration, the initialization of
    one object using the value of another object
    would lead to a shallow copying of the data if
    the default memberwise copying of data is allowed
  • If, as a parameter, an object is passed by value
    and the default member-wise copying of data is
    allowed, it would lead to a shallow copying of
    the data

37
Copy Constructor
  • The copy constructor automatically executes in
    the following situations
  • When an object is declared and initialized by
    using the value of another object
  • When, as a parameter, an object is passed by
    value
  • When the return value of a function is an object

38
Copy Constructor
39
Copy Constructor
  • General syntax to include the copy constructor in
    the definition of a class
  • className(const className otherObject)

40
Classes with Pointer Data Members
  • Include destructor in the class
  • Overload assignment operator for class
  • Include copy constructor

41
Overloading Array Index (Subscript) Operator ( )
  • Syntax to declare the operator function operator
    as a member of a class for nonconstant
    arrays
  • Type operator(int index)
  • Syntax to declare the operator function operator
    as a member of a class for constant arrays
  • const Type operator(int index) const

42
Array-Based Lists
  • List A collection of elements of the same type
  • Length of list is number of elements in list

43
Operations performed on a list
  • Create the list initialized to an empty state
  • Determine whether the list is empty
  • Determine whether the list is full
  • Find the size of the list
  • Destroy, or clear, the list
  • Determine whether an item is the same as a given
    list element

44
Operations performed on a list
  • Insert an item in the list at the specified
    location
  • Remove an item from the list at the specified
    location
  • Replace an item at the specified location with
    another item
  • Retrieve an item from the list at the specified
    location
  • Search the list for a given item

45
UML Diagram of the class arrayListType
46
Time Complexity of List Operations
47
Chapter Summary
  • Pointer data types and variables
  • Dynamic variables
  • Pointer arithmetic
  • Dynamic arrays
  • Shallow and deep copying
  • Peculiarities of classes with pointer data
    members
  • Processing lists
Write a Comment
User Comments (0)
About PowerShow.com