Bird
Raised Fist0
C++programming~10 mins

Multi-dimensional arrays in C++ - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Multi-dimensional arrays
Declare multi-dimensional array
↓
Access element by row and column indices
↓
Modify or read element
↓
Use nested loops to traverse rows and columns
↓
Process or output elements
↓
End
This flow shows how to declare, access, and traverse a multi-dimensional array using nested loops.
Execution Sample
C++
#include <iostream>
using namespace std;

int main() {
  int arr[2][3] = {{1,2,3},{4,5,6}};
  for(int i=0; i<2; i++) {
    for(int j=0; j<3; j++) {
      cout << arr[i][j] << ' ';
    }
    cout << '\n';
  }
  return 0;
}
This code declares a 2x3 array and prints all its elements row by row.
Execution Table
StepijCondition i<2Condition j<3ActionOutput
100TrueTruePrint arr[0][0] = 11
201TrueTruePrint arr[0][1] = 22
302TrueTruePrint arr[0][2] = 33
403TrueFalseInner loop ends, print newline\n
510TrueTruePrint arr[1][0] = 44
611TrueTruePrint arr[1][1] = 55
712TrueTruePrint arr[1][2] = 66
813TrueFalseInner loop ends, print newline\n
920FalseN/AOuter loop ends
💡 Outer loop i=2 is not less than 2, so loop ends.
Variable Tracker
VariableStartAfter Step 1After Step 4After Step 5After Step 8Final
i000112
j00303N/A
Key Moments - 3 Insights
Why does the inner loop reset j to 0 after finishing one row?
Because the inner loop runs for each row, j must start at 0 to access columns from the beginning each time (see steps 4 and 5 in execution_table).
Why do we use two loops instead of one to access all elements?
A multi-dimensional array has rows and columns, so one loop goes through rows (i), and the inner loop goes through columns (j) to cover every element (see nested loops in code).
What happens if we try to access arr[2][0]?
It is out of bounds because the array has only 2 rows indexed 0 and 1. Accessing arr[2][0] causes undefined behavior (see exit condition i<2 in execution_table).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of j after step 4?
A2
B0
C3
D1
💡 Hint
Check the 'j' column in execution_table row for step 4.
At which step does the outer loop condition become false?
AStep 8
BStep 9
CStep 4
DStep 1
💡 Hint
Look at the 'Condition i<2' column in execution_table.
If the array size changed to arr[3][3], how many total elements would the loops print?
A9
B6
C3
D5
💡 Hint
Multiply the number of rows by columns to find total elements.
Concept Snapshot
Multi-dimensional arrays store data in rows and columns.
Declare with syntax: type name[rows][columns];
Access elements with arr[row][column].
Use nested loops to traverse all elements.
Outer loop for rows, inner loop for columns.
Indexing starts at 0 and goes to size-1.
Full Transcript
This lesson shows how multi-dimensional arrays work in C++. We declare an array with two dimensions, like int arr[2][3]. We access elements using two indices: row and column. To print all elements, we use nested loops: the outer loop goes through rows, and the inner loop goes through columns. Each loop runs until its condition is false. The inner loop resets its index after finishing a row. Trying to access outside the declared size causes errors. This visual trace shows each step of the loops and the values of variables i and j as they change.

Practice

(1/5)
1. What is a multi-dimensional array in C++?
easy
A. A variable that holds a single number
B. An array that stores only one value
C. A function that returns multiple values
D. An array with more than one index, like rows and columns

Solution

  1. Step 1: Understand array dimensions

    A multi-dimensional array uses multiple indexes to access elements, such as row and column in a table.
  2. Step 2: Compare options

    Only An array with more than one index, like rows and columns describes an array with more than one index, matching the concept of multi-dimensional arrays.
  3. Final Answer:

    An array with more than one index, like rows and columns -> Option D
  4. Quick Check:

    Multi-dimensional array = multiple indexes [OK]
Hint: Think of rows and columns in a table for multi-dimensional arrays [OK]
Common Mistakes:
  • Confusing arrays with single values
  • Thinking functions return multiple values
  • Mixing variables with arrays
2. Which of the following is the correct way to declare a 2D array of integers with 3 rows and 4 columns in C++?
easy
A. int arr[3][4];
B. int arr(3,4);
C. int arr[4][3];
D. int arr{3,4};

Solution

  1. Step 1: Recall C++ 2D array syntax

    The correct syntax uses square brackets with sizes: int arr[rows][columns];
  2. Step 2: Check each option

    int arr[3][4]; uses int arr[3][4]; which means 3 rows and 4 columns, correct syntax. Others are invalid or reversed.
  3. Final Answer:

    int arr[3][4]; -> Option A
  4. Quick Check:

    Use square brackets for dimensions [OK]
Hint: Use square brackets for rows and columns in declaration [OK]
Common Mistakes:
  • Using parentheses instead of brackets
  • Swapping row and column sizes
  • Using curly braces for declaration
3. What is the output of the following C++ code?
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
std::cout << arr[1][2];
medium
A. 6
B. 3
C. 4
D. 2

Solution

  1. Step 1: Understand array initialization

    The array has 2 rows and 3 columns: first row {1,2,3}, second row {4,5,6}.
  2. Step 2: Access element arr[1][2]

    Row index 1 is second row, column index 2 is third element: value is 6.
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    arr[1][2] = 6 [OK]
Hint: Remember indexes start at 0; arr[1][2] is second row, third column [OK]
Common Mistakes:
  • Confusing row and column indexes
  • Forgetting zero-based indexing
  • Reading wrong element from array
4. Identify the error in this C++ code snippet:
int matrix[2][2] = {{1, 2}, {3}};
std::cout << matrix[1][1];
medium
A. Missing value in second row initialization
B. Array size mismatch causes compile error
C. No error, code runs and prints 0
D. Incorrect use of std::cout syntax

Solution

  1. Step 1: Check array initialization

    The second row has only one value {3}, missing one element for 2 columns.
  2. Step 2: Understand C++ behavior for missing elements

    Missing elements are initialized to 0 automatically, so matrix[1][1] is 0.
  3. Step 3: Check output statement

    std::cout syntax is correct, so it prints 0 without error.
  4. Final Answer:

    No error, code runs and prints 0 -> Option C
  5. Quick Check:

    Missing elements default to 0 in arrays [OK]
Hint: Missing elements in array init become zero, no error [OK]
Common Mistakes:
  • Assuming missing elements cause errors
  • Thinking std::cout syntax is wrong
  • Expecting garbage values instead of zero
5. How can you sum all elements of a 3x3 integer array named grid in C++?
hard
A. Use std::accumulate directly on the 2D array
B. Use nested loops to add each element to a sum variable
C. Use a single loop from 0 to 8 to sum elements
D. Add only the first row elements

Solution

  1. Step 1: Understand 2D array traversal

    To access all elements in a 3x3 array, use two loops: one for rows, one for columns.
  2. Step 2: Sum elements with nested loops

    Inside inner loop, add each element grid[i][j] to a sum variable to get total sum.
  3. Final Answer:

    Use nested loops to add each element to a sum variable -> Option B
  4. Quick Check:

    Nested loops sum all elements [OK]
Hint: Use two loops: outer for rows, inner for columns [OK]
Common Mistakes:
  • Using single loop ignoring 2D structure
  • Summing only part of the array
  • Trying to use std::accumulate on 2D array directly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard