visualization of a 5-element char array

An array can be visualized as a row of elements where each element has its own column number (index). A regular array is usually known as a one-dimensional array because every element can be placed in one row.

visualization of a 5x5 char array

A multidimensional array is simply an array of arrays. A multidimensional array has elements with more than one index. A two-dimensional array can be visualized as rows of arrays stacked together in order to create a grid. Therefore, each element in that array will have both a row number and a column number. Each pair of coordinates (row, column) will refer to a unique element in the array. What makes a one-dimensional array different than a multidimensional array is the number of indexes that each element has.

Two-dimensional arrays (arrays with 2 indexes) are often used whenever variables must be organized into a grid. That way, a computer can easily look through an entire row/column in a grid. Three-dimensional arrays can be visualized as a cube where each index corresponds to a different dimension of the cube.

In C++, each square bracket ([ ]) corresponds to a separate dimension of an array. For example, a two-dimensional array will have two sets of square brackets. When initializing an array, the size of each dimension of the array must be given.

<span id="L1" class="line"><span class="n">arrayType</span> <span class="n">arrayName</span> <span class="p">[</span><span class="n">size1</span><span class="p">]</span> <span class="p">[</span><span class="n">size2</span><span class="p">];</span></span>

When accessing an element in a multidimensional array, the index of each dimension must be known. Each set of indexes refers to a unique element in an array.

<span id="L1" class="line"><span class="n">arrayName</span><span class="p">[</span><span class="n">index1</span><span class="p">][</span><span class="n">index2</span><span class="p">]</span></span>
Note
No set of square brackets can be left blank when accessing an element in an array.
Example code of a 2-dimensional array:
<span id="L1" class="line"><span class="cp">#include &lt;iostream&gt;</span></span>
<span id="L2" class="line"><span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span></span>
<span id="L3" class="line"><span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span></span>
<span id="L4" class="line">    <span class="c1">// the purpose of this code is to show a 4 by 4 multiplication table</span></span>
<span id="L5" class="line">    <span class="kt">int</span> <span class="n">len</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span>            <span class="c1">// len is the size of each dimension of the array</span></span>
<span id="L6" class="line">    <span class="kt">int</span> <span class="n">grid</span><span class="p">[</span><span class="n">len</span><span class="p">][</span><span class="n">len</span><span class="p">];</span>     <span class="c1">// grid is a len by len 2-dimensional array</span></span>
<span id="L7" class="line">    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">len</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>         <span class="c1">// i represents the row number</span></span>
<span id="L8" class="line">        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">len</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>     <span class="c1">// j represents the col number</span></span>
<span id="L9" class="line">            <span class="n">grid</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span> <span class="c1">// assigns a value to each element</span></span>
<span id="L10" class="line">        <span class="p">}</span></span>
<span id="L11" class="line">    <span class="p">}</span></span>
<span id="L12" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"Look at this Cool Multiplication Table"</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
<span id="L13" class="line">    <span class="c1">// looks at every column in each row and outputs element in array</span></span>
<span id="L14" class="line">    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">len</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></span>
<span id="L15" class="line">        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><span class="n">j</span> <span class="o">&lt;</span> <span class="n">len</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></span>
<span id="L16" class="line">            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">grid</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>  <span class="c1">// outputs the value of the element</span></span>
<span id="L17" class="line">        <span class="p">}</span></span>
<span id="L18" class="line">        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>                   <span class="c1">// skips to new line when outputting</span></span>
<span id="L19" class="line">    <span class="p">}</span></span>
<span id="L20" class="line">    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></span>
<span id="L21" class="line"><span class="p">}</span></span>
Output:
Look at this Cool Multiplication Table
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16

In Summary:

  • Arrays are used to organize multiple variables of the same type

  • Each variable in an array is called an element

  • Each element is ordered and given an index

  • The first element of an array always has an index of 0

  • The size of an array will always remain constant

  • Multidimensional arrays are arrays of arrays, and each element in a multidimensional array has more than one index

Practice Questions