中国高校课件下载中心 》 教学资源 》 大学文库

《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 10 Pointers and Dynamic Arrays

文档信息
资源类别:文库
文档格式:PPT
文档页数:53
文件大小:755KB
团购合买:点击进入团购
内容简介
《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 10 Pointers and Dynamic Arrays
刷新页面文档预览

Chapter 10 ABSOLUTE C++ Pointers and Dynamic Arrays WALTER SAVITCH SECOND EDITION PEARSON Copyright2006 Pearson Addison-Wesley All rights reserved

Chapter 10 Pointers and Dynamic Arrays

Learning Objectives ◆Pointers ◆Pointer variables ◆Memory management ◆Dynamic Arrays ◆Creating and using ◆Pointer arithmetic Classes,Pointers,Dynamic Arrays ◆The this pointer Destructors,copy constructors Copyright 2006 Pearson Addison-Wesley.All rights reserved. 10-2

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-2 Learning Objectives ¨ Pointers ¨ Pointer variables ¨ Memory management ¨ Dynamic Arrays ¨ Creating and using ¨ Pointer arithmetic ¨ Classes, Pointers, Dynamic Arrays ¨ The this pointer ¨ Destructors, copy constructors

Pointer Introduction ◆Pointer definition: Memory address of a variable Recall:memory divided +Numbered memory locations Addresses used as name for variable ◆You've used pointers already! Call-by-reference parameters +Address of actual argument was passed Copyright 2006 Pearson Addison-Wesley.All rights reserved. 10-3

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-3 Pointer Introduction ¨ Pointer definition: ¨Memory address of a variable ¨ Recall: memory divided ¨Numbered memory locations ¨Addresses used as name for variable ¨ You’ve used pointers already! ¨Call-by-reference parameters ¨Address of actual argument was passed

Pointer Variables Pointers are "typed" Can store pointer in variable ◆Not int,double,etc. Instead:A POINTER to int,double,etc.! ◆Example: double *p; p is declared a "pointer to double"variable Can hold pointers to variables of type double ◆Not other types! Copyright 2006 Pearson Addison-Wesley.All rights reserved. 10-4

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-4 Pointer Variables ¨ Pointers are "typed" ¨ Can store pointer in variable ¨ Not int, double, etc. ¨ Instead: A POINTER to int, double, etc.! ¨ Example: double *p; ¨ p is declared a "pointer to double" variable ¨ Can hold pointers to variables of type double ¨ Not other types!

Declaring Pointer Variables Pointers declared like other types Add "*before variable name Produces "pointer to"that type "*must be before each variable ◆int*p1,*p2,v1,v2; p1,p2 hold pointers to int variables v1,v2 are ordinary int variables Copyright006 Pearson Addison-Wesley.All rights reserved. 10-5

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-5 Declaring Pointer Variables ¨ Pointers declared like other types ¨Add "*" before variable name ¨Produces "pointer to" that type ¨ "*" must be before each variable ¨ int *p1, *p2, v1, v2; ¨p1, p2 hold pointers to int variables ¨v1, v2 are ordinary int variables

Addresses and Numbers ◆Pointer is an address ◆Address is an integer Pointer is NOT an integer! ◆Not crazy→abstraction! C++forces pointers be used as addresses Cannot be used as numbers Even though it "is a"number Copyright 2006 Pearson Addison-Wesley.All rights reserved. 10-6

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-6 Addresses and Numbers ¨ Pointer is an address ¨ Address is an integer ¨ Pointer is NOT an integer! ¨Not crazy  abstraction! ¨ C++ forces pointers be used as addresses ¨Cannot be used as numbers ¨Even though it "is a" number

Pointing ◆Terminology,view Talk of "pointing",not "addresses" Pointer variable "points to"ordinary variable Leave "address"talk out Makes visualization clearer "See"memory references ◆Arrows Copyright006 Pearson Addison-Wesley.All rights reserved. 10-7

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-7 Pointing ¨ Terminology, view ¨Talk of "pointing" , not "addresses" ¨Pointer variable "points to" ordinary variable ¨Leave "address" talk out ¨ Makes visualization clearer ¨"See" memory references ¨Arrows

Pointing to . ◆int*p1,*p2,v1,v2; p1=&V1; Sets pointer variable p1 to "point to"int variable v1 ◆Operator,& Determines "address of"variable ◆Read like: "p1 equals address of v1" ◆Or"p1 points to v1" Copyright 2006 Pearson Addison-Wesley.All rights reserved. 10-8

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-8 Pointing to . ¨ int *p1, *p2, v1, v2; p1 = &v1; ¨ Sets pointer variable p1 to "point to" int variable v1 ¨ Operator, & ¨ Determines "address of" variable ¨ Read like: ¨ "p1 equals address of v1" ¨ Or "p1 points to v1

Pointing to . ◆Recall: int *p1,*p2,v1,v2; p1=&v1; Two ways to refer to v1 now: ◆Variable v1 itself:: cout <v1; ◆Via pointer p1: cout *p1; Dereference operator, Pointer variable "derereferenced" Means:"Get data that p1 points to" Copyright006 Pearson Addison-Wesley.All rights reserved. 10-9

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-9 Pointing to . ¨ Recall: int *p1, *p2, v1, v2; p1 = &v1; ¨ Two ways to refer to v1 now: ¨ Variable v1 itself: cout << v1; ¨ Via pointer p1: cout *p1; ¨ Dereference operator, * ¨ Pointer variable "derereferenced" ¨ Means: "Get data that p1 points to

"Pointing to"Example ◆Consider: V1=0; p1=&V1; *p1=42; cout <v1 <endl; cout <*p1 <endl; ◆Produces output: 42 42 p1 and v1 refer to same variable Copyright 2006 Pearson Addison-Wesley.All rights reserved. 10-10

Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 10-10 "Pointing to" Example ¨ Consider: v1 = 0; p1 = &v1; *p1 = 42; cout << v1 << endl; cout << *p1 << endl; ¨ Produces output: 42 42 ¨ p1 and v1 refer to same variable

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档