Chapter 11 Pointer Variables - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 11 Pointer Variables

Description:

b 1 (double is 8 bytes, so adds 8 bytes) Subtraction goes back to ... alias array_ptr for declarations of pointers to 1-D arrays of double with size 2 ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 28
Provided by: RalphFTo5
Category:

less

Transcript and Presenter's Notes

Title: Chapter 11 Pointer Variables


1
Chapter 11 Pointer Variables
2
Declaring a Pointer Variable
  • Declared with data type, and identifier
    type pointer_variable
  • follows data type
  • Usually no space between so more obvious
  • Space allowed, so 1 or more would still work
  • Reserves space for storage
  • Must initialize or assign address

Lesson 11.1
3
Assigning an Address
  • Use the "address of" operator ()
  • General form pointer_variable
    ordinary_variable

Lesson 11.1
4
Using a Pointer Variable
  • Can be used to access a value
  • Unary operator used pointer_variable
  • In executable statement, indicates value
  • Common practice to use suffix ptr for pointer
    variables
  • Example width_ptr

Lesson 11.1
5
Pointer Operators
  • Ampersand
  • Address of
  • Asterisk
  • Get value at the address

Lesson 11.1
6
Uses of
  • Binary multiplication operator volume
    height depth width
  • Declaration specifier indicating address to be
    stored in variable's memory cell double
    height_address
  • Unary operator indicating to get value or access
    memory cells at addressed height_address
    10.5

Lesson 11.1
7
Uses of
  • Declaration of function header to indicate a
    reference void function1
    (double)
  • In executable statement to indicate "address
    of" height_address height

Lesson 11.1
8
Spacing a
  • Somewhat flexible in declaration or header
    double height double
    height double height
  • For multiple pointer declarations double
    height width

or
double height double width
Lesson 11.1
9
Transferring Addresses to Functions
  • In declaration and header use type in argument
    list type function (type, type) type
    funcName (type name, type name)
  • In function call use variable in argument list
    to pass address identifier funcName (name1,
    name2)

Lesson 11.2
10
Using Pointer for Array Transfer
rtype function (type, int) function (array,
num) rtype function (type b, int num_elem)
code using b with
brackets (bn)
Declaration
Call
Header
FunctionBody
Lesson 11.3
11
Example
void function2 (double, int) int main ( )
double c5 2.1, 3.5, 6.4, 1.9, 4.5
function2 ( c, 5) void function2 (double b,
int num_elem)
Lesson 11.3
12
Pointer Variables and Math
  • Declare variable as pointer double b
  • Holds address
  • Can perform addition and subtraction
  • Purpose of add is to advance to subsequent cell
    b 1 (double is 8 bytes, so adds 8 bytes)
  • Subtraction goes back to previous memory cell
    b 1 (goes back 8 bytes)

Lesson 11.4
13
Returning Array Address from Function
Example Function declaration and header
double get_array_address (double )
double get_array_address (double c ) Now a
return statement with variable thatindicates
address in the function body
return c
Lesson 11.5
14
Pointer Variables
  • Point to 2, 4, or 8 bytes of memory depending on
    type of variable
  • Can point to entire array
  • Holds address of beginning of array
  • Pointer declaration indicates size of memory
    greater than single value

Lesson 11.6
15
Creating Pointer to Arrays
  • Example double (f) 2
  • Example double (h) 3 5

Lesson 11.6
16
typedef Statement
  • Used to create an alias for a data type
  • Note not a new data type
  • Basic form typedef type synonym_1, synonym_n

Lesson 11.6
17
Uses of typedef
  • Improve readability and understandability of the
    code
  • Easier to modify programs that are implementation
    dependent

Lesson 11.6
18
Arrays and typedef
  • General form typedef type name size
  • type is the type of values in the array
  • name is the alias to be used as the data type in
    a declaration
  • size is array size

Lesson 11.6
19
typedef for Pointer to Array
  • General form typedef type (name) size
  • type is type of values in array
  • name is the alias to be used as data type in
    declaration
  • size is array size

Lesson 11.6
20
Returning a Pointer
  • Given the example typedef double
    (array_ptr) 2
  • Creates alias array_ptr for declarations of
    pointers to 1-D arrays of double with size 2
  • array_ptr function2 (argument)
  • Indicates pointer to 1-D array is returned from
    function

Lesson 11.6
21
Multidimensional Arrays
  • C sees array of arrays
  • Example int a2 3 4
  • Can work with whole (or 1) array
  • Can use 2 arrays of 3 4
  • Can use 6 arrays of 4
  • Can use 24 integers
  • Pointers int (b)3 4, (c)4, d, a
  • Can assign addresses with operator ( b
    a0 )

Lesson 11.6
22
Pointers to Objects
  • Special arrow operator -gt
  • Negative and greater than symbol with no space
    between
  • Used to access members with object's address
  • Declaring pointer Class_name ptr_name
  • Initializing pointer ptr_name object_name
  • Calling member function (2 argument example)
    ptr_name -gt function_name (arg1, arg2)

Lesson 11.7
23
Pointers as Data Members
  • General form class Class_name
    private type
    pointer_name public
    type function_name ( )

Lesson 11.8
24
Dynamic Memory Allocation
  • Optimize memory space with new and delete
    operators
  • Reserve and unreserve memory while program is
    execution
  • Pointer variables important because operators
    work with addresses of memory reserved

Lesson 11.9
25
new Operator
  • General form new type num_elements
  • type is data type of array elements
  • num_elements is number of array elements
  • Reserves memory but does NOT fill with values
  • new returns address of memory it reserves
  • Value assigned to pointer variable of same type

type array_address
array_address new type num
Lesson 11.9
26
delete Operator
  • General form delete array_address
  • array_address is pointer variable
  • Releases memory stored at address indicated
  • Knows size of memory reserved by new and releases
    memory for all the array
  • delete address
  • deletes memory for single element

Lesson 11.9
27
Summary
Learned how to
  • Declare and initialize pointer variables
  • Pass addresses to functions
  • Return an address from a function
  • Reserve memory during execution
  • Link classes with accessor functions
Write a Comment
User Comments (0)
About PowerShow.com