MultipleSubscripted Array What it is How to use

Multiple-Subscripted Array • • What it is How to use it How to declare it How to initialize it

Multiple-Subscripted Arrays • Use more than one subscript (can have up to 12) • Double-subscripted array (2 subscripts)

Double-subscripted array • good for representing tables in memory • one subscript is the row • second subscript is the column
![Double-subscripted array column 0 column 1 column 2 column 3 row 0 a[0][0] a[0][1] Double-subscripted array column 0 column 1 column 2 column 3 row 0 a[0][0] a[0][1]](http://slidetodoc.com/presentation_image_h2/abbad73f8fae67b7ebfc51bdaac564b2/image-4.jpg)
Double-subscripted array column 0 column 1 column 2 column 3 row 0 a[0][0] a[0][1] a[0][2] a[0][3] row 1 a[1][0] a[1][1] a[1][2] a[1][3] row 2 a[2][0] a[2][1] a[2][2] a[2][3] array name = a row subscript column subscript a double-subscripted array with 3 rows and 4 columns 3 by 4 array

Referencing elements in a double-subscripted array To set the element in row 2 and column 3 to the value 4 use: a [2] [3] = 4; column subscript row subscript name of the array
![Declaring a 3 by 4 array int a [3] [4]; must tell compiler name, Declaring a 3 by 4 array int a [3] [4]; must tell compiler name,](http://slidetodoc.com/presentation_image_h2/abbad73f8fae67b7ebfc51bdaac564b2/image-6.jpg)
Declaring a 3 by 4 array int a [3] [4]; must tell compiler name, size (2 sizes) and type all elements of the array must be the same type any data type is fine (int, float, char, etc. )

Declaring a doublesubscripted array Must use constants to declare row and column sizes. int a [3] [4]; char letters [2] [26]; #define ROW 3 #define COLUMN 4 int a [ROW] [COLUMN]; const int row = 3; const int column = 4; int a [row] column];

Initializing a double-subscripted array const int row = 3; const int column = 4; int a [row] [column]; for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { a [i][j] = 0; } }

Initializing a double-subscripted array with declaration const int row = 3; const int column = 4; int a[row] [column] = {{1, 2, 3, 4}, {1, 2, 3, 4}}; 1 2 3 4

Initializing a double-subscripted array with declaration const int row = 3; const int column = 4; int a[row] [column] = {{1, 2, 3}, {1, 2, 3, 4}}; 1 2 3 0 1 2 0 0 1 2 3 4

Setting entire array to 0 const int row = 3; const int column = 4; int a [row] [column] = {0}; 0 0 0

Exercises Answer the following questions regarding an array called table that is a double-subscripted array with 2 rows and 3 columns. 1) Define constant variables num. Rows and num. Cols to be used to declare the array. 2) Declare the array to be an integer array. 3) Use a for loop to initialize each element of the array to be the sum of it’s subscripts 4) Write a code segment to print the array as a table.

How double-subscripted arrays are stored in memory table 1 2 3 4 5 9 6 10 7 11 8 12 table 1 2 3 4 5 6 7 8 9 10 11 12

passing double-subscripted array to a function Must tell function size of second subscript so it can find the beginning of each row in memory. void Print. Table (int table [ ] [4], int num. Rows, int num. Cols) { for (int i = 0; i < num. Rows; i++) { for (int j = 0; j < num. Cols; j++) { cout << setw(4) << table [i] [j]; } cout << endl; } }

passing double-subscripted array to a function • passed as reference parameter • Use const to prevent function changing the array. void Print. Table (const int table [ ] [4], int num. Rows, int num. Cols);

Exercises Write a main program as follows: Use the results of the last set of exercises to declare an array of type integers with 2 rows and 3 columns and initialize each element to the sum of it’s subscripts. Call the Print. Table function to print the array. Create a function called Print. Table to print each element of the array in tabular form.
- Slides: 16