Transcript
Page 1: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Multidimensional Arrays

• Arrays with more than one dimension are called multidimensional arrays.

• Human cannot easily visualize more than three dimension but representing multidimensional arrays presents no problem to

computers.

DeclarationAn array of two dimension can be declared as

data_type array_name[size1][size2];

Where size1 and size2 are the sizes of the array’s first and second dimensions respectively.

Page 2: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Multidimensional Arrays

• Ex :

The chessboard can be represented as a two-dimensional array of 64 elements like

int chs[8][8];

Here the indices of each side of the chessboard array run from 0 to 7.

Declaration of three dimensional Array A three dimensional array such a s a cube can be represented as

data_type array_name [size1][size2][size3];

Three-dimensional arrays and higher , are stored as a linear sequence of variables and the last index is the the one that varies the fastest.

Page 3: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Multidimensional Arrays

• Initialization The number of subscripts determines the dimensionality of an array. For example x[i][j] refers to an element of a two-dimensional array.• The initialization of a multidimensional array is done in the same

way as a single-dimensional array. Ex : int y[3][5] = { {1,2,3,4,5},

{6,7,8,9,10}, {11,12,13,14,15}};

orint y[3][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

The compiler assigns values beginning with the [0][0] element and proceeds row by row to fill in the remaining values.

Page 4: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Multidimensional Arrays

Rules• When initializing the arrays , the outermost pair of braces cannot be

omitted.• But if the initializer list includes all the initializers for the object being

initialized, the inner braces can be omitted.

Ex :

int x[4][2] = {{1,2},{3,4},{5,6}};

Here the initialization ends before the fourth row is initialized, so the members of the fourth row default to zero or garbage depending on the compiler.

Page 5: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Multidimensional Arrays

Unsized Array initializationIf unsized arrays are declared , the c compiler automatically creates an

array big enough to hold all the initializers. This called an unsized array.

Ex : char str[]=“how are you?”; int x[][2]={1,2,3,4,5,6,7,8};

Accessing multidimensional Arrays• The elements of a multidimensional array are stored contiguously in

a block of computer memory.• The last subscript of the array varies most rapidly where as the first

varies least rapidly.• That is for a two-dimensional array x[2][2] the elements are stored in

the order x[0][0], x[0][1], x[1][0], x[1][1].

Page 6: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Multidimensional Arrays

• Ex :

int i,j;

int x[3][2] = {{1,2},{3,4},{5,6}};

for(i=0;i<=2;i++)

{

for(j=0;j<=1;j++)

printf(“a[%d][%d]=%d”,i,j,a[i][j]);

printf(“\n”);

}

Thus a multidimensional array can not be stored as a grid but the array is stored in rows.

Page 7: Multidimensional Arrays Arrays with more than one dimension are called multidimensional arrays. Human cannot easily visualize more than three dimension

Arrays of Strings

• A two-dimensional array of strings can be declared as

data_type array_name [row_size][column_size];

Ex :

char s[5][30];

InitializationA two-dimensional string array can be initialized as

char s[5][30] = {“apple”,”banana”,”papaya”,”pine apple”,”orange”};

or

char s[][] = {“apple”,”banana”,”papaya”,”pine apple”,”orange”};

where s[0]=“apple” s[2]=“papaya” and so on.


Recommended