# Arrays (1-Based Indexing)

> Cambridge Assessment International Education (CAIE) Pseudocode Reference Guide
> Applicable Syllabus: **IGCSE &amp; A Level**

1D and 2D array declarations with strict 1-based indexing, element access, boundary loops, and whole-array assignment in Cambridge pseudocode.

---

Arrays are fixed-length structures of identical data type, accessible by consecutive index numbers. Square brackets denote indices. A lower bound of **1** is standard across Cambridge syllabuses.

### Array Declarations &amp; Usage

```pseudocode
// runnable
// Array declaration demo
DECLARE StudentNames : ARRAY[1:30] OF STRING

// 2D array
DECLARE NoughtsAndCrosses : ARRAY[1:3,1:3] OF CHAR

DECLARE SavedGame : ARRAY[1:3,1:3] OF CHAR
DECLARE n, Index : INTEGER
n &lt;- 1

// Accessing individual elements
StudentNames[1] &lt;- &quot;Ali&quot;
NoughtsAndCrosses[2,3] &lt;- &#39;X&#39;
StudentNames[n+1] &lt;- StudentNames[n]

// Whole-array assignment (same size and type)
SavedGame &lt;- NoughtsAndCrosses

// Assigning a group of elements requires a loop
FOR Index &lt;- 1 TO 30
   StudentNames[Index] &lt;- &quot;&quot;
NEXT Index
```

### Key Examination Notes

- Cambridge pseudocode uses **1-based indexing** by default (e.g. `ARRAY[1:10]`).
- 2D arrays use comma separation inside brackets (e.g. `Matrix[row, column]`).
- Direct whole-array assignment (e.g. `ArrB &lt;- ArrA`) is valid only when both arrays have identical dimensions and element types.


---

* Previous Topic: [Variables, Constants &amp; Data Types](https://csmasters.dev/docs/pseudocode/variables-and-types.md)
* Next Topic: [User-Defined Data Types](https://csmasters.dev/docs/pseudocode/user-defined-types.md)
