## Multidimensional array

- Array having more than one subscript variable is called multidimensional array.
- Multidimensional array is also called as matrix.

## Consider the Two dimensional array –

- Two Dimensional Array requires
**Two Subscript Variables**
- Two Dimensional Array stores the values in the form of matrix.
- One Subscript Variable denotes the “
**Row**” of a matrix.
- Another Subscript Variable denotes the “
**Column**” of a matrix.

### Declaration and Use of Two Dimensional Array :

int a[3][4];

**Use :**

for(i=0;i<row,i++)
for(j=0;j<col,j++)
{
printf("%d",a[i][j]);
}

### Meaning of Two Dimensional Array :

- Matrix is having 3 rows ( i takes value from 0 to 2 )
- Matrix is having 4 Columns ( j takes value from 0 to 3 )
- Above Matrix 3×4 matrix will have 12 blocks having 3 rows & 4 columns.
- Name of 2-D array is ‘
**a**‘ and each block is identified by the row & column number.
- Row number and Column Number Starts from 0.

Cell Location |
Meaning |

a[0][0] |
0th Row and 0th Column |

a[0][1] |
0th Row and 1st Column |

a[0][2] |
0th Row and 2nd Column |

a[0][3] |
0th Row and 3rd Column |

a[1][0] |
1st Row and 0th Column |

a[1][1] |
1st Row and 1st Column |

a[1][2] |
1st Row and 2nd Column |

a[1][3] |
1st Row and 3rd Column |

a[2][0] |
2nd Row and 0th Column |

a[2][1] |
2nd Row and 1st Column |

a[2][2] |
2nd Row and 2nd Column |

a[2][3] |
2nd Row and 3rd Column |

## Two-Dimensional Array : Summary with Sample Example

Summary Point |
Explanation |

No of Subscript Variables Required |
2 |

Declaration |
a[3][4] |

No of Rows |
3 |

No of Columns |
4 |

No of Cells |
12 |

No of for loops required to iterate |
2 |

## Memory Representation

- 2-D arrays are Stored in contiguous memory location
**row wise**.
- 3 X 3 Array is shown below in the first Diagram.
- Consider
**3×3 Array is stored in Contiguous memory** location which starts from 4000 .
- Array element
**a[0][0]** will be stored at address **4000** again **a[0][1]** will be stored to next memory location i.e Elements stored row-wise
- After
**Elements of First Row are stored** in appropriate memory location , elements of next row get their corresponding mem. locations.

- This is integer array so each element requires 2 bytes of memory.

### Basic Memory Address Calculation :

a[0][1] = a[0][0] + Size of Data Type

Element |
Memory Location |

a[0][0] |
4000 |

a[0][1] |
4002 |

a[0][2] |
4004 |

a[1][0] |
4006 |

a[1][1] |
4008 |

a[1][2] |
4010 |

a[2][0] |
4012 |

a[2][1] |
4014 |

a[2][2] |
4016 |