《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
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 12 Streams and File IO.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 11 Separate Compilation and Namespaces.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 5 Arrays.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 8 Operator Overloading, Friends, and References.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 7 Constructors and Other Tools.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 6 Structures and Classes.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 2 Flow of Control.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 3 Function Basics.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 1 C++ Basics.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 4 Parameters and Overloading.ppt
- 西安邮电大学:《信息论与编码》课程教学课件(PPT讲稿)第三章.ppt
- 西安邮电大学:《信息论与编码》课程教学课件(PPT讲稿)第二章 信源与信息熵.ppt
- 西安邮电大学:《信息论与编码》课程教学课件(PPT讲稿)第一章 绪论(主讲:王军选).ppt
- 《信息论与编码》课程教学资源(作业习题)第三章 信道与信道容量(含解答).pdf
- 《信息论与编码》课程教学资源(作业习题)自测题无答案.pdf
- 《信息论与编码》课程教学实验指导书.pdf
- 《信息论与编码》课程教学大纲 Element of Information Theory and Coding B.pdf
- 《信息论与编码》课程教学大纲 Element of Information Theory and Coding A.pdf
- 《信息安全概论》课程教学资源(PPT课件)第9章 信息安全标准与法律法规.ppt
- 《信息安全概论》课程教学资源(PPT课件)第2章 信息保密技术.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 9 Strings.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 13 Inheritance.ppt
- 《C++面向对象程序设计》课程教学资源(PPT课件)Chapter 14 Polymorphism and Virtual Functions.ppt
- 《微机技术及应用》课程教学大纲 Microcmputer Technology and aplications.doc
- 《微型计算机技术及应用》课程电子教案(PPT教学课件,共十五章,完整版).pptx
- 《计算机导论》课程教学大纲 Computer Concepts.pdf
- 《计算机导论》课程教学课件(英文讲稿)1-a-Computer History+ Di Devices.pdf
- 《计算机导论》课程教学课件(英文讲稿)1-b-Digital Data Representation.pdf
- 《计算机导论》课程教学课件(英文讲稿)2-a-Computer Hardware.pdf
- 《计算机导论》课程教学课件(英文讲稿)2-b-Computer Hardware.pdf
- 《计算机导论》课程教学课件(英文讲稿)3-a-b-Computer Software.pdf
- 《计算机导论》课程教学课件(英文讲稿)4- operating system.pdf
- 《计算机导论》课程教学课件(英文讲稿)4-a- File mangement.pdf
- 《计算机导论》课程教学课件(英文讲稿)5-a- LANS_WANS.pdf
- 《计算机导论》课程教学课件(英文讲稿)5-b- LANS_WANS.pdf
- 《计算机导论》课程教学课件(英文讲稿)6-a- The Internet.pdf
- 《计算机导论》课程教学课件(英文讲稿)6-b- The Internet.pdf
- 《计算机导论》课程教学课件(英文讲稿)7-a- Web.pdf