 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays Outline Introduction Arrays Declaring Arrays Examples Using Arrays.

Slides:



Advertisements
Similar presentations
Arrays. Introduction Arrays –Structures of related data items –Static entity - same size throughout program A few types –C-like, pointer-based arrays.
Advertisements

4.1Introduction Arrays –Structures of related data items –Static entity (same size throughout program) A few types –Pointer-based arrays (C-like) –Arrays.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing.
 2003 Prentice Hall, Inc. All rights reserved. 7.1 Introduction Arrays –Data structures which reference one or more value –All items must have same data.
5 5 Arrays. OBJECTIVES In this lecture we will learn:  Case switch  To use the array data structure to represent a set of related data items.  To declare.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing.
 2003 Prentice Hall, Inc. All rights reserved Introduction Arrays –Structures of related data items –Static entity (same size throughout program)
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays.
Review (Week1) C++_ the unit of programming is the class from which objects are eventually instantiated. C++ classes contain functions that implement class.
 2003 Prentice Hall, Inc. All rights reserved. Chapter 7 - Arrays Outline 7.1 Introduction 7.2 Arrays 7.3 Declaring and Creating Arrays 7.4 Examples Using.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays 6.3Declaring Arrays 6.4Examples Using Arrays 6.5Passing.
 2003 Prentice Hall, Inc. All rights reserved. 1 Sorting Arrays Sorting data –Important computing application –Virtually every organization must sort.
1 Array, Pointer and Reference ( I ) Ying Wu Electrical Engineering and Computer Science Northwestern University EECS 230 Lectures.
 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays –Structures of related data items –Static entity (same size throughout program) A few types –Pointer-based.
Chapter 6 C Arrays Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc. Arrays are data structures.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing.
 2003 Prentice Hall, Inc. All rights reserved. Modified for use with this course. Introduction to Arrays Introduction to Computers and Programming in.
1 CSCE 1030 Computer Science 1 Arrays Chapter 7 in Small Java.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
 Pearson Education, Inc. All rights reserved Arrays.
4.1Introduction Arrays –Structures of related data items –Static entity (same size throughout program) A few types –Pointer-based arrays (C-like) –Arrays.
 2003 Prentice Hall, Inc. All rights reserved. 1 IS 0020 Program Design and Software Tools Introduction to C++ Programming Lecture 3 Arrays & Pointers.
Programming Languages -1 (Introduction to C) arrays Instructor: M.Fatih AMASYALI
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays.
 2006 Pearson Education, Inc. All rights reserved Arrays.
CHAPTER 07 Arrays and Vectors (part I). OBJECTIVES 2 In this part you will learn:  To use the array data structure to represent a set of related data.
 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays Outline Examples Using Arrays Passing arrays to functions Class GradeBook: store student grades.
Algorithm and Programming Array Dr. Ir. Riri Fitri Sari MM MSc International Class Electrical Engineering Dept University of Indonesia 15 March 2009.
 2000 Prentice Hall, Inc. All rights reserved Arrays Array –Group of consecutive memory locations –Same name and type To refer to an element, specify.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 6 - Functions.
1 Arrays as Lists with examples. 2 Review Arrays –Structures of related data items of the same type –Data items (called array elements) are stored at.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing.
1 CISC181 Introduction to Computer Science Dr. McCoy Lecture 13 October 13, 2009.
1 Arrays and Vectors Chapter 7 Arrays and Vectors Chapter 7.
1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing Arrays to Functions 4.6Sorting Arrays 4.7Case.
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays.
 2003 Prentice Hall, Inc. All rights reserved. 1 Vectors.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
 2003 Prentice Hall, Inc. All rights reserved. 1 Pointers and Strings Outline Introduction Pointer Variable Declarations and Initialization Pointer Operators.
 2008 Pearson Education, Inc. All rights reserved. 1 Arrays and Vectors.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing.
 2003 Prentice Hall, Inc. All rights reserved. Outline 1 fig04_03.cpp (1 of 2) 1 // Fig. 4.3: fig04_03.cpp 2 // Initializing an array. 3 #include 4 5.
C++ Programming Lecture 14 Arrays – Part I The Hashemite University Computer Engineering Department (Adapted from the textbook slides)
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays 4.5Passing.
1 Lecture 4: Part1 Arrays Introduction Arrays  Structures of related data items  Static entity (same size throughout program)
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Arrays Outline 6.1Introduction 6.2Arrays 6.3Declaring.
CHAPTER 3 ARRAYS Dr. Shady Yehia Elmashad. Outline 1.Introduction 2.Arrays 3.Declaring Arrays 4.Examples Using Arrays 5.Multidimensional Arrays 6.Multidimensional.
 2006 Pearson Education, Inc. All rights reserved Arrays and Vectors.
 2000 Prentice Hall, Inc. All rights reserved Arrays Array –Consecutive group of memory locations –Same name and type To refer to an element, specify.
4.1Introduction Arrays –Structures of related data items –Static entity (same size throughout program) A few types –Pointer-based arrays (C-like) –Arrays.
Chapter 4 - Arrays Outline 4.1 Introduction 4.2 Arrays
© 2016 Pearson Education, Ltd. All rights reserved.
Arrays Outline 1 Introduction 2 Arrays 3 Declaring Arrays
CSC 113: Computer Programming (Theory = 03, Lab = 01)
آرايه ها اصول كامپيوتر 1.
Chapter 6 - Arrays Outline 6.1 Introduction 6.2 Arrays
C Arrays.
Chapter 9 - Arrays Outline 6.1 Introduction 6.2 Arrays
Arrays Kingdom of Saudi Arabia
Arrays as Lists with examples.
4.1 Introduction Arrays A few types Structures of related data items
Arrays Kingdom of Saudi Arabia
Chapter 4 - Arrays Outline 4.1 Introduction 4.2 Arrays
Chapter 4 - Arrays Outline 4.1 Introduction 4.2 Arrays
Chapter 4 - Arrays Outline 4.1 Introduction 4.2 Arrays
Capitolo 4 - Arrays Outline 4.1 Introduction 4.2 Arrays
Arrays Arrays A few types Structures of related data items
Chapter 3 Arrays Dr. A. PHILIP AROKIADOSS Assistant Professor
Lecture 2 Arrays & Pointers September 7, 2004
4.1 Introduction Arrays A few types Structures of related data items
Presentation transcript:

 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays Outline Introduction Arrays Declaring Arrays Examples Using Arrays

 2003 Prentice Hall, Inc. All rights reserved. 2 Introduction Arrays –Structures (collection) of related data items (same type data items) –Static entity (maintain the same size throughout program execution)

 2003 Prentice Hall, Inc. All rights reserved. 3 Arrays Array –Consecutive group of memory locations –Same name and type ( int, char, etc.) To refer to an element –Specify array name and position number (index) –Format: arrayname[ position_number ] –An Array index must be an integer –First element at position 0 N-element array c c[ 0 ], c[ 1 ] … c[ n - 1 ] –Nth element as position N-1

 2003 Prentice Hall, Inc. All rights reserved. 4 Arrays Array elements like other variables –Assignment, printing for an integer array c c[ 0 ] = 3; cout << c[ 0 ]; Can perform operations inside subscript c[ 5 – 2 ] same as c[3] int a = 6, b= 5; c[ a + b ] += 2;

 2003 Prentice Hall, Inc. All rights reserved. 5 Arrays c[6] Name of array (Note that all elements of this array have the same name, c) c[0] c[1] c[2] c[3] c[11] c[10] c[9] c[8] c[7] c[5] c[4] Position number of the element within array c Value

 2003 Prentice Hall, Inc. All rights reserved. 6 Declaring Arrays When declaring arrays, specify –Name –Type of array Any data type –Number of elements –type arrayName[ arraySize ]; int c[ 10 ]; // array of 10 integers float d[ 3284 ]; // array of 3284 floats –arraySize: MUST be a positive integer Declaring multiple arrays of same type –Use comma separated list, like regular variables int b[ 100 ], x[ 27 ];

 2003 Prentice Hall, Inc. All rights reserved. 7 Declaring Arrays Array of type char can be used to store a character string –string objects have so far been used to store character strings –Arrays can do the same thing (more later)

 2003 Prentice Hall, Inc. All rights reserved. 8 Examples Using Arrays Initializing arrays –For loop Set each element –Initializer list Specify each element when array declared int n[ 5 ] = { 1, 2, 3, 4, 5 }; If not enough initializers  rightmost elements 0 If too many  syntax error –To set every element to same value int n[ 5 ] = { 0 }; –If array size omitted  initializers determine size int n[] = { 1, 2, 3, 4, 5 }; 5 initializers, therefore 5 element array

 2003 Prentice Hall, Inc. All rights reserved. Outline 9 1 // Fig. 7.3: fig07_03.cpp 2 // Initializing an array. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 #include 9 10 using std::setw; int main() 13 { 14 int n[ 10 ]; // n is an array of 10 integers // initialize elements of array n to 0 17 for ( int i = 0; i < 10; i++ ) 18 n[ i ] = 0; // set element at location i to cout << "Element" << setw( 13 ) << "Value" << endl; // output contents of array n in tabular format 23 for ( int j = 0; j < 10; j++ ) 24 cout << setw( 7 ) << j << setw( 13 ) << n[ j ] << endl; 25 Declare a 10-element array of integers. Initialize array to 0 using a for loop. Note that the array has elements n[0] to n[9].

 2003 Prentice Hall, Inc. All rights reserved. Outline return 0; // indicates successful termination } // end main Element Value

 2003 Prentice Hall, Inc. All rights reserved. Outline 11 1 // Fig. 7.4: fig07_04.cpp 2 // Initializing an array with a declaration. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 #include 9 10 using std::setw; int main() 13 { 14 // use initializer list to initialize array n 15 int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; cout << "Element" << setw( 13 ) << "Value" << endl; // output contents of array n in tabular format 20 for ( int i = 0; i < 10; i++ ) 21 cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl; return 0; // indicates successful termination } // end main Note the use of the initializer list.

 2003 Prentice Hall, Inc. All rights reserved. Outline 12 Element Value

 2003 Prentice Hall, Inc. All rights reserved. 13 Examples Using Arrays Array size –Can be specified with constant variable ( const ) const int size = 20; –Constants cannot be changed –Constants must be initialized when declared –Also called named constants or read-only variables

 2003 Prentice Hall, Inc. All rights reserved. Outline 14 1 // Fig. 7.5: fig07_05.cpp 2 // Initialize array s to the even integers from 2 to #include 4 5 using std::cout; 6 using std::endl; 7 8 #include 9 10 using std::setw; int main() 13 { 14 // constant variable can be used to specify array size 15 const int arraySize = 10; int s[ arraySize ]; // array s has 10 elements for ( int i = 0; i < arraySize; i++ ) // set the values 20 s[ i ] = * i; cout << "Element" << setw( 13 ) << "Value" << endl; 23 Note use of const keyword. Only const variables can specify array sizes. The program becomes more scalable when we set the array size using a const variable. We can change arraySize, and all the loops will still work (otherwise, we’d have to update every loop in the program).

 2003 Prentice Hall, Inc. All rights reserved. Outline // output contents of array s in tabular format 25 for ( int j = 0; j < arraySize; j++ ) 26 cout << setw( 7 ) << j << setw( 13 ) << s[ j ] << endl; return 0; // indicates successful termination } // end main Element Value

 2003 Prentice Hall, Inc. All rights reserved. Outline 16 1 // Fig. 7.6: fig07_06.cpp 2 // Using a properly initialized constant variable. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 int main() 9 { 10 const int x = 7; // initialized constant variable cout << "The value of constant variable x is: " 13 << x << endl; return 0; // indicates successful termination } // end main The value of constant variable x is: 7 Proper initialization of const variable. (cannot be modified later)

 2003 Prentice Hall, Inc. All rights reserved. Outline 17 1 // Fig. 7.7: fig07_07.cpp 2 // A const object must be initialized. 3 4 int main() 5 { 6 const int x; // Error: x must be initialized 7 8 x = 7; // Error: cannot modify a const variable 9 10 return 0; // indicates successful termination } // end main d:\cpphtp7_examples\ch04\Fig07_07.cpp(8) : error C2166: l-value specifies const object Uninitialized const results in a syntax error. Attempting to modify the const is another error.

 2003 Prentice Hall, Inc. All rights reserved. Outline 18 1 // Fig. 7.8: fig07_08.cpp 2 // Compute the sum of the elements of the array. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 int main() 9 { 10 const int arraySize = 10; int a[ arraySize ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int total = 0; // sum contents of array a 17 for ( int i = 0; i < arraySize; i++ ) 18 total += a[ i ]; cout << "Total of array element values is " << total << endl; return 0; // indicates successful termination } // end main Total of array element values is 55 Summing the elements of an array

 2003 Prentice Hall, Inc. All rights reserved. 19 Showing array data graphically –Example: show distribution of grades of a specific class –Grade distribution is stored in an array of 11 elements, each corresponds to a category of grade Example: –category 1: [0..9] –category 2: [10..19] –etc…

 2003 Prentice Hall, Inc. All rights reserved. Outline 20 1 // Fig. 7.9: fig07_09.cpp 2 // Histogram printing program. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 #include 9 10 using std::setw; int main() 13 { 14 const int arraySize = 11; 15 int n[ arraySize ] = { 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1 }; cout << “Grade Distribution:" << endl; // for each element of array n, output a bar in histogram 20 for ( int i = 0; i < arraySize; i++ ) { 21 // output bar labels (“0-9:”,…“90-99:”, “100:”) 22 if (i == 0) 23 cout << “0-9:”; 24 else if (i == 10) 25 cout << “100:”; 26 else 27 cout << i * 10 << “-” << (i * 10) + 9<< “: ”;

 2003 Prentice Hall, Inc. All rights reserved. Outline // print bar of asterisks 29 for ( int stars = 0; stars < n[ i ]; stars++ ) 30 cout << '*'; cout << endl; // start next line of output } // end outer for structure return 0; // indicates successful termination 37 } // end main Grade distribution 0-9: 10-19: 20-29: 30-39: 40-49: 50-59: 60-69: * 70-79: * * 80-89: * * * * 90-99: * * 100: * Number of students with grades in the range: 10*i--10*i+9.

 2003 Prentice Hall, Inc. All rights reserved. Outline 22 1 // Fig. 7.10: fig07_10.cpp 2 // Roll a six-sided die times. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 #include 9 10 using std::setw; #include 13 #include int main() 16 { 17 const int arraySize = 7; // ignore element zero 18 int frequency[ arraySize ] = { 0 }; srand( time( 0 ) ); // seed random-number generator // roll die times 23 for ( int roll = 1; roll <= ; roll++ ) 24 frequency[ 1 + rand() % 6 ]++; 25 Remake of old program to roll dice. An array is used instead of 6 regular variables, and the proper element can be updated easily (without needing a switch ). This creates a number between 1 and 6, which determines the index of frequency[] that should be incremented. Using Elements of array as counters

 2003 Prentice Hall, Inc. All rights reserved. Outline cout << "Face" << setw( 13 ) << "Frequency" << endl; // output frequency elements 1-6 in tabular format 30 for ( int face = 1; face < arraySize; face++ ) 31 cout << setw( 4 ) << face 32 << setw( 13 ) << frequency[ face ] << endl; return 0; // indicates successful termination } // end main Face Frequency

 2003 Prentice Hall, Inc. All rights reserved. 24 Using arrays to summarize survey results Forty students were asked to rate the quality of the food in the student cafeteria on a scale of 1 to 10 (1 meaning awful and 10 meaning excellent). Place the 40 responses in an integer array and summarize the results of the poll

 2003 Prentice Hall, Inc. All rights reserved. Outline 25 1 // Fig. 7.11: fig07_11.cpp 2 // Student poll program. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 #include 9 10 using std::setw; int main() 13 { 14 // define array sizes 15 const int responseSize = 40; // size of array responses 16 const int frequencySize = 11; // size of array frequency // place survey responses in array responses 19 const int responses[ responseSize ] = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 20 10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 21 5, 6, 6, 5, 6, 7, 5, 6, 4, 8, 6, 8, 10 }; // initialize frequency counters to 0 24 int frequency[ frequencySize ] = { 0 }; 25 Array declared as const int  this means its value cannot and should not change

 2003 Prentice Hall, Inc. All rights reserved. Outline // for each answer, select value of an element of array 27 // responses and use that value as subscript in array 28 // frequency to determine element to increment 29 for ( int answer = 0; answer < responseSize; answer++ ) 30 frequency[ responses[answer] ]++; // display results 33 cout << "Rating" << setw( 17 ) << "Frequency" << endl; // output frequencies in tabular format 36 for ( int rating = 1; rating < frequencySize; rating++ ) 37 cout << setw( 6 ) << rating 38 << setw( 17 ) << frequency[ rating ] << endl; return 0; // indicates successful termination } // end main responses[answer] is the rating (from 1 to 10). This determines the index in frequency[] to increment.

 2003 Prentice Hall, Inc. All rights reserved. Outline 27 Rating Frequency NOTE: what happens when the data in responses contain an invalid value (e.g., 13)… C++ does not do a boundary check  logic error happens (NOT SYNTAX ERROR)

 2003 Prentice Hall, Inc. All rights reserved. 28 Using character arrays to store and manipulate strings string has been used to store character strings –A string such as “Hello” is an array of characters A character array can be declared and initialized as: –char string1[] = “first”; –The size of array string1 is not explicitly defined, but it is determined by the compiler based on the length of the string. –NOTE: all strings represented by a character array ends with a special character (the null character ‘\0’) A character array representing a string should be defined large enough to hold the number of characters in the string + the termination character

 2003 Prentice Hall, Inc. All rights reserved. 29 Using character arrays to store and manipulate strings One could also use this method to declare strings: char string1[] = {‘f’, ‘i’, ‘r’, ‘s’, ‘t’, ‘\0’}; If you don’t use ‘\0’, the array would simply represent an array of characters, not a string! if you specify the size of string1 and the size of “list of initializers” is larger  syntax error char arrays can be manipulated as other arrays, example: –string[0] = ‘f’;

 2003 Prentice Hall, Inc. All rights reserved. 30 Using character arrays to store and manipulate strings Input from keyboard char string2[ 20 ]; cin >> string2; –Puts user input in string Stops at first whitespace character  Adds null character –If too much text entered, data written beyond array We want to avoid this Printing strings –cout << string2 << endl; Does not work for other array types –Characters printed until null found

 2003 Prentice Hall, Inc. All rights reserved. Outline 31 1 // Fig. 7.12: fig07_12.cpp 2 // treating character arrays as strings. 3 #include 4 using std::cout; 5 using std::cin; 6 using std::endl; 7 8 int main() 9 { 10 char string1 [20]; // reserve 20 characters 11 char string2 [] = “string literal”; // reserve 15 characters // read string from user into array string1 14 cout << “Enter the string “\hello there\”: ”; 15 cin >> string1; // read “hello” [space terminates input] // output strings 18 cout << “string1 is: ” << string1 << “\nstring2 is: ” << string2; 19 cout << “\nstring1 with spaces between characters is:\n”; // output characters until null character is reached 22 for ( int i = 0; string1[ i ]!= ‘\0’; i++ ) 23 cout << string1[ i ] << ‘ ’; cin >> string1; // reads “there” 26 cout << “\nstring1 is: ” << string1 <<endl; return 0; // indicates successful termination 29 } // end main

 2003 Prentice Hall, Inc. All rights reserved. Outline 32 Enter the string “hello there”: hello there string1 is: hello string2 is: string literal string1 with spaces between characters is: h e l l o string1 is: there

 2003 Prentice Hall, Inc. All rights reserved. 33 Static and automatic local variables Recall static storage –If static, local variables save values between function calls –Visible only in function body –Can declare local arrays to be static Initialized to zero static int array[3]; If not static –Created (and destroyed) in every function call

 2003 Prentice Hall, Inc. All rights reserved. Outline 34 1 // Fig. 7.13: fig07_13.cpp 2 // Static arrays are initialized to zero. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 void staticArrayInit( void ); // function prototype 9 void automaticArrayInit( void ); // function prototype int main() 12 { 13 cout << "First call to each function:\n"; 14 staticArrayInit(); 15 automaticArrayInit(); cout << "\n\nSecond call to each function:\n"; 18 staticArrayInit(); 19 automaticArrayInit(); 20 cout << endl; return 0; // indicates successful termination } // end main 25

 2003 Prentice Hall, Inc. All rights reserved. Outline // function to demonstrate a static local array 27 void staticArrayInit( void ) 28 { 29 // initializes elements to 0 first time function is called 30 static int array1[ 3 ]; cout << "\nValues on entering staticArrayInit:\n"; // output contents of array1 35 for ( int i = 0; i < 3; i++ ) 36 cout << "array1[" << i << "] = " << array1[ i ] << " "; cout << "\nValues on exiting staticArrayInit:\n"; // modify and output contents of array1 41 for ( int j = 0; j < 3; j++ ) 42 cout << "array1[" << j << "] = " 43 << ( array1[ j ] += 5 ) << " "; } // end function staticArrayInit 46 Static array, initialized to zero on first function call. Array data is changed; the modified values stay.

 2003 Prentice Hall, Inc. All rights reserved. Outline // function to demonstrate an automatic local array 48 void automaticArrayInit( void ) 49 { 50 // initializes elements each time function is called 51 int array2[ 3 ] = { 1, 2, 3 }; cout << "\n\nValues on entering automaticArrayInit:\n"; // output contents of array2 56 for ( int i = 0; i < 3; i++ ) 57 cout << "array2[" << i << "] = " << array2[ i ] << " "; cout << "\nValues on exiting automaticArrayInit:\n"; // modify and output contents of array2 62 for ( int j = 0; j < 3; j++ ) 63 cout << "array2[" << j << "] = " 64 << ( array2[ j ] += 5 ) << " "; } // end function automaticArrayInit Automatic array, recreated with every function call. Although the array is changed, it will be destroyed when the function exits and the changes will be lost.

 2003 Prentice Hall, Inc. All rights reserved. Outline 37 First call to each function: Values on entering staticArrayInit: array1[0] = 0 array1[1] = 0 array1[2] = 0 Values on exiting staticArrayInit: array1[0] = 5 array1[1] = 5 array1[2] = 5 Values on entering automaticArrayInit: array2[0] = 1 array2[1] = 2 array2[2] = 3 Values on exiting automaticArrayInit: array2[0] = 6 array2[1] = 7 array2[2] = 8 Second call to each function: Values on entering staticArrayInit: array1[0] = 5 array1[1] = 5 array1[2] = 5 Values on exiting staticArrayInit: array1[0] = 10 array1[1] = 10 array1[2] = 10 Values on entering automaticArrayInit: array2[0] = 1 array2[1] = 2 array2[2] = 3 Values on exiting automaticArrayInit: array2[0] = 6 array2[1] = 7 array2[2] = 8