Arrays can have multiple dimensions. A 2D array is like a grid with rows and columns. Declare int grid[3][4]; for 3 rows and 4 columns. This creates 12 integer slots in rectangular structure.
Think of 2D arrays as arrays of arrays. grid[0] is the first row (an array of 4 ints), grid[1] is the second row. Each row contains multiple columns. Access cells with two indices.
Common uses: game boards, pixel grids, matrices, spreadsheet-like data. Whenever data has natural row-column structure, 2D arrays fit well. Process them with nested loops.