a laboratory course in c data structures 2003 7377

7 1 0
a laboratory course in c data structures 2003 7377

Đang tải... (xem toàn văn)

Thông tin tài liệu

A Laboratory Course in C ++ Data Structures James Robergé Stefan Brandle David Whittington Second Edition JONES AND BARTLETT COMPUTER SCIENCE A Laboratory Course in Second Edition C ++ Data Structures James Robergé Illinois Institute of Technology Stefan Brandle Taylor University David Whittington Taylor University World Headquarters Jones and Bartlett Publishers 40 Tall Pine Drive Sudbury, MA 01776 978-443-5000 info@jbpub.com www.jbpub.com Jones and Bartlett Publishers Canada 2406 Nikanna Road Mississauga, ON L5C 2W6 CANADA Jones and Bartlett Publishers International Barb House, Barb Mews London W6 7PA UK Copyright © 2003 by Jones and Bartlett Publishers, Inc Cover image © Douglas E Walker / Masterfile All rights reserved No part of the material protected by this copyright notice may be reproduced or utilized in any form, electronic or mechanical, including photocopying, recording, or any information storage or retrieval system, without written permission from the copyright owner Library of Congress Cataloging-in-Publication Data Robergé, Jim A laboratory course in C++ data structures / James Robergé, Stefan Brandle, David Whittington p cm ISBN 0-7637-1976-5 C++ (Computer program language) I Brandle, Stefan II Whittington, David III Title QA76.73.C153R58 2003 005.13’3—dc21 2002044401 Editor-in-Chief, College: J Michael Stranz Production Manager: Amy Rose Associate Editor: Theresa DiDonato Associate Production Editor: Karen C Ferreira Production Assistant: Jenny L McIsaac Senior Marketing Manager: Nathan J Schultz Composition: Northeast Compositors Cover Design: Night & Day Design Manufacturing Buyer: Therese Bräuer Printing and Binding: Courier Stoughton Cover Printing: Courier Stoughton Printed in the United States of America 07 06 05 04 03 10 To my son Edward, who lets me see a world of wonder through his eyes And to my wife, Ruby, who creates that world —James Robergé To Christina, Anna, and Esther: my queen and little princesses —Stefan Brandle In memory of my kitty Sweetpea —David Whittington Pointers • int * ptr Just for completeness, ptr is a pointer to integer Both the data pointed at and where the pointer points can be modified It is good software engineering practice to give a function only as much access to data as it absolutely needs The results are more complicated-looking code, but it can save tons of time that otherwise would be spent debugging to determine how and where something was getting magically changed So if a function uses an array but doesn’t need to change the data, it would be best passed as const type * ptr, or even const type * const ptr Pointer math: Pointers can be incremented (++) and decremented ( ), integers can be added or subtracted from pointers ( +, +=, —, -=) or one pointer may be subtracted from another The general rule to remember is that the arithmetic is always done in terms of the size of the data type pointed at For example, ptr += means “change what we are pointing at by * sizeof the data type”; if the datatype is bytes, then ptr now points * = 16 bytes higher ptr2 — ptr1 gives you the difference between the two pointers as a difference between the array index value of ptr2 and ptr1, so if ptr2 points to array[3] and ptr1 points to array[1], ptr2 — ptr1 = (since the ptr2 points to an element two elements away from ptr1) Pointer math only makes sense in the context of an array C-Strings: C-strings are just pointers to an array of characters The string end is calculated by starting at item in the array and moving up through the indexed characters until a character with the value ‘\0’ is found; that is the end of the string Note: There is a big difference between an empty string (the first item in the array has the value ‘\0’) and a null string (the pointer has the value NULL, or (char *) 0) A NULL pointer by our definition doesn’t point at any data | 411 ... elements away from ptr1) Pointer math only makes sense in the context of an array C- Strings: C- strings are just pointers to an array of characters The string end is calculated by starting at item in. .. the data pointed at and where the pointer points can be modified It is good software engineering practice to give a function only as much access to data as it absolutely needs The results are... Editor -in- Chief, College: J Michael Stranz Production Manager: Amy Rose Associate Editor: Theresa DiDonato Associate Production Editor: Karen C Ferreira Production Assistant: Jenny L McIsaac Senior Marketing

Ngày đăng: 04/12/2022, 14:35