Arrays

Arrays are lists of variables of a specific type that are accessed using an integer number called an index. Some examples of arrays are: an array of integer numbers, an array of characters, and an array of floating point numbers. Array elements are numbered starting with zero.

These examples use hard coding to load the arrays and printf to print the contents of the arrays.

When working with arrays, statements like Index++; which is C shorthand for Index = Index + 1; are common.

Simple  |  Character  |  Dimensions

Simple

This program declares an array of four integers called ArrayOfIntegers and a integer variable called Index. The array is loaded, and then printed via a for loop using the Index variable. Note: the number of elements in the array is 4 and the elements are numbered 0 through 3, not 1 through 4.

Assuming an integer occupies 4 bytes of memory, then the size of this array is 16 contiguous bytes of memory.

#include <stdio.h>

int main(int argc, char *argv[])
{
  int ArrayOfIntegers[4];
  int Index;
  int ElementValue;

  ArrayOfIntegers[0] = 380;
  ArrayOfIntegers[1] = 7;
  ArrayOfIntegers[2] = 36;
  ArrayOfIntegers[3] = 5989;

  for (Index = 0; Index < 4; Index++)
  {
    ElementValue = ArrayOfIntegers[Index];
    printf("Index is: %d and the value is: %d\n", Index, ElementValue);
  }
  return 0;
}
Top

Character

This program declares an array of 25 characters called ArrayOfCharacters and a integer variable called Index. The array is loaded, and then printed via a for loop using the Index variable. Note: the number of elements in the array is 30 and the elements are numbered 0 through 29, not 1 through 30.

Assuming a character occupies 1 byte of memory, then the size of this array is 30 contiguous bytes of memory.

#include <stdio.h>

int main(int argc, char *argv[])
{
  char ArrayOfCharacters[30];
  char OneCharacter;
  int  Index;

  Index = 0;
  ArrayOfCharacters[Index] = 'T';
  Index++;
  ArrayOfCharacters[Index] = 'H';
  Index++;
  ArrayOfCharacters[Index] = 'I';
  Index++;
  ArrayOfCharacters[Index] = 'S';
  Index++;
  ArrayOfCharacters[Index] = ' ';
  Index++;
  ArrayOfCharacters[Index] = 'I';
  Index++;
  ArrayOfCharacters[Index] = 'S';
  Index++;
  ArrayOfCharacters[Index] = ' ';
  Index++;
  ArrayOfCharacters[Index] = 'A';
  Index++;
  ArrayOfCharacters[Index] = 'N';
  Index++;
  ArrayOfCharacters[Index] = ' ';
  Index++;
  ArrayOfCharacters[Index] = 'A';
  Index++;
  ArrayOfCharacters[Index] = 'R';
  Index++;
  ArrayOfCharacters[Index] = 'R';
  Index++;
  ArrayOfCharacters[Index] = 'A';
  Index++;
  ArrayOfCharacters[Index] = 'Y';
  Index++;
  ArrayOfCharacters[Index] = ' ';
  Index++;
  ArrayOfCharacters[Index] = 'O';
  Index++;
  ArrayOfCharacters[Index] = 'F';
  Index++;
  ArrayOfCharacters[Index] = ' ';
  Index++;
  ArrayOfCharacters[Index] = 'C';
  Index++;
  ArrayOfCharacters[Index] = 'H';
  Index++;
  ArrayOfCharacters[Index] = 'A';
  Index++;
  ArrayOfCharacters[Index] = 'R';
  Index++;
  ArrayOfCharacters[Index] = 'A';
  Index++;
  ArrayOfCharacters[Index] = 'C';
  Index++;
  ArrayOfCharacters[Index] = 'T';
  Index++;
  ArrayOfCharacters[Index] = 'E';
  Index++;
  ArrayOfCharacters[Index] = 'R';
  Index++;
  ArrayOfCharacters[Index] = 'S';

  for (Index = 0; Index < 30; Index++)
  {
    OneCharacter = ArrayOfCharacters[Index];
    printf("%c", OneCharacter);
  }
  printf("\n");
  return 0;
}
Top

Multiple Dimensions

This program declares a two dimensional array of 3 columns containing four integers each called ArrayOfIntegers and a two integer variables called Index1 and Index2. The array is loaded, and then printed via a for loop using the Index1 and Index2 variables. Note: the number of elements in the array is 12.

Assuming an integer occupies 4 bytes of memory, then the size of this array is 48 contiguous bytes of memory.

#include <stdio.h>

int main(int argc, char *argv[])
{
  int ArrayOfIntegers[3][4];
  int ElementValue;
  int Index1;
  int Index2;

  ArrayOfIntegers[0][0] = 380;
  ArrayOfIntegers[0][1] = 7;
  ArrayOfIntegers[0][2] = 36;
  ArrayOfIntegers[0][3] = 5989;
  
  ArrayOfIntegers[1][0] = 1380;
  ArrayOfIntegers[1][1] = 17;
  ArrayOfIntegers[1][2] = 136;
  ArrayOfIntegers[1][3] = 15989;

  ArrayOfIntegers[2][0] = 2380;
  ArrayOfIntegers[2][1] = 27;
  ArrayOfIntegers[2][2] = 236;
  ArrayOfIntegers[2][3] = 25989;

  for (Index1 = 0; Index1 < 3; Index1++)
  {
    for (Index2 = 0; Index2 < 4; Index2++)
    {
      ElementValue = ArrayOfIntegers[Index1][Index2];
      printf("Index1 is: %d Index2 is: %d The value is: %d\n", Index1, Index2, ElementValue);
    }
  }
  return 0;
}
Top