# 2d Array in C Programming Language

Updated on July 8, 2018

Raj is an ardent coder who loves exploring new technology. He is an IT pro with 9 years of exp in C#, Angular, React, Vue.

We know how to work with an array (1D array) having one dimension. In C language it is possible to have more than one dimension in an array. In this tutorial we are going to learn how we can use two dimensional arrays (2D arrays) to store values. Because it is a 2D array so its structure will be different from one dimension array (1D array). The 2D array is also known as Matrix or Table, it is an array of array. See the 2D array image, in that image each row is an array.

## Declaration of 2D array:

Syntax: data_type array_name[row_size][column_size];
Example: int arr[3][3];
So the above example declares a 2D array of integer type. This integer array has been named arr and it can hold up to 9 elements (3 rows x 3 columns).

## Code for assigning & displaying 2D Array

```#include<stdio.h>
#include<conio.h>

void main()
{
int i, j;
int arr[3][3]={
{12, 45, 63},
{89, 34, 73},
{19, 76, 49}
};
clrscr();
printf(":::2D Array Elements:::\n\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d\t",arr[i][j]);
}
printf("\n");
}
getch();
}
```

## Displaying 2D array using for loop.

So in the above example we have declared a 2D array named arr which can hold 3x3 elements. We have also initialized that array with values, because we told the compiler that this array will contain 3 rows (0 to 2) so we divided elements accordingly. Elements for column have been differentiated by a comma (,). When compiler finds comma in array elements then it assumes comma as beginning of next element value. We can also define the same array in other ways, like.
int arr[3][3]={12, 45, 63, 89, 34, 73, 19, 76, 49}; or,
int arr[ ][3]={12, 45, 63, 89, 34, 73, 19, 76, 49};

But this kind of declaration is not acceptable in C language programming.

int arr[2][ ]={12, 45, 63, 89, 34, 73, 19, 76, 49}; or,
int arr[ ][ ]={12, 45, 63, 89, 34, 73, 19, 76, 49};

To display 2D array elements we have to just point out which element value we want to display. In our example we have a arr[3][3], so the array element reference will be from arr[0][0] to arr[2][2]. We can print display any element from this range. But in our example I have used for loop for my convenience, otherwise I had to write 9 printf statements to display all elements of array. So for loop i handles row of 2D array and for loop j handles column. I have formatted the output display of array so that we can see the elements in tabular form.

See results

## Popular

0

5

• ### Programming in Java Netbeans - A Step by Step Tutorial for Beginners: Lesson 7

1

0 of 8192 characters used
• usha

6 years ago

WAP which input 2 integer in 2D array and find sum of odd integer?

• amsareka

7 years ago

understandable explanation keep it up and thanks

• k.sinduja reddy

8 years ago

• gajanan

8 years ago

super......

• NAveed Cheema

8 years ago

• rima

9 years ago

aaaaaa shutttte

• hhh...d

9 years ago

write aprogram read the integar 10 elements into an array and display it reverse order?

• plz gve more examples in practical like using students

9 years ago

very useful

• sanju

9 years ago

write program of maximum and minimum using twodemension array using c

• pmuralimohan

9 years ago

nice,very good thank you

• 9 years ago

super

• Dhaval

9 years ago

Write a program that creates a two-dimensional array with 10 rows and 2 columns. The first column should be filled with 10 random numbers between 0 and 100. The second column should contain the squared value of the element found in column 1. Using the show ( ) method of the MessageBox class, display a table. Please someone help me out on this program?????

9 years ago

it is not easy making array statement without following the example given by the instructor or else the teacher

• zoya

9 years ago

its not enough,,abut array more explanation shud be there,,

• HIMA

9 years ago

GOOD

• Rahul

9 years ago

it is awesome

• Sunil

9 years ago

C is very easy to learn

• mamatha.k

9 years ago

• sivaramakash

9 years ago

excellent

• sreeji

10 years ago

is there any difference between these two assignment?

int arr[ ][3]={12, 45, 63, 89, 34, 73, 19, 76, 49};

and

int arr[3 ][]={12, 45, 63, 89, 34, 73, 19, 76, 49};

compiler shows second one is wrong..y?

• YAQOOB

10 years ago

yesterday i was completely confuse when i was writing 2d array prog but now now my concept is totally clear about it

• Nisha

10 years ago

Thank you friend for written data type.

• pavan

10 years ago

i want merging two dimensional arrays in c language

• selvi.k

10 years ago

hi frnds i got some idea about arrays after seeing tat

• Parvez

10 years ago

Nice...Thank you.

• amrik

10 years ago

• Meena

10 years ago

I have clear idea when i was seen this site. Thank you

• ryan

11 years ago

thanks... i can use it on my class...

• kashya[

11 years ago

very good site

i got my all problems clear

• bucles

11 years ago

nice-1!

working