Lecture15

advertisement
C Programming
Lecture 15
Two Dimensional Arrays
Two-Dimensional Arrays

The C language allows arrays of any
type, including arrays of arrays.
• With two bracket pairs, we obtain a twodimensional array.
int a[100];
A 1-dimensional array
capable of storing 100
integers.
int b[2][7];
A 2-dimensional array
capable of storing 2
rows with 7 integers
in each row.
char name[3][12]
A 2-dimensional array
capable of storing 3 names
each with up to 11 characters
and the null character.
How the Elements of a
Two-Dimensional Array are Stored

A j x k dimensional array has
j * k elements.
• Starting with the base address of the
array, all the elements are stored
contiguously in memory.
• However, it is often convenient to
think of a two-dimensional array as a
rectangular collection of elements
with rows and columns.
Example of Conceptual Storage
of a Two-Dimensional Array

If we declare:
int a[3][5];
we can think of the array elements arranged
as:
row 1
row 2
row 3
col 1
a[0][0]
a[1][0]
a[2][0]
col 2
a[0][1]
a[1][1]
a[2][1]
col 3
a[0][2]
a[1][2]
a[2][2]
col 4
a[0][3]
a[1][3]
a[2][3]
col 5
q[0][4]
a[1][4]
a[2][4]
Note that the row is specified by the first index
and the column by the second index.
Passing a Two-Dimensional
Array to a Function
 When
a multidimensional array
is a formal parameter in a
function definition, all
sizes except the first must
be specified:
• So the compiler can determine
the correct storage mapping
function.
Example of a Function Call
and Function Definition
Array Declaration:
int ary[3][5], result;
Function Call:
result = sum(ary);
Function Definition:
int sum(int a[][5])
{
int i, j, sum = 0;
for (i = 0; i < 3; ++i)
for (j = 0; j < 5; ++j)
sum += a[i][j];
return sum;
}
Download