Arrays – C programming
Reference: AL Kelly, (2012) A Book on C,
Programming in C
Prepared by: Bryan G Dadiz
Objectives
• At the end of this Training the Programmer can:
• Demonstrate the parts of an array.• Create an array declaration.• Demonstrate an array with initial values.• Demonstrate the Array Subscripting
procedure.• Create Multidimensional Array• Multidimensional Array Processing
Topic Overview
• Arrays– Parts of an Array– Array Characteristics– Initializing an Array– Subscripting– 1D and 2D Arrays– Array Exercise
ARRAYS
• Is also know as set.
• An array is a data type • uses subscripted
variables
• representation of a large number of homogeneous values.
Dimensions of ArrayOne Dimensional Array or 1D Array
Two Dimensional or 2D Array
Array
[0] [1] [2] [3] [4]
index
tray[3] = egg
tray[0] = null
ArraysInstead of initializing:
int grade0, grade1, grade2, grade4, grade6;
Where is grade3?
We put this into array to be
int grade[3];
[ 1 ] [ 2 ] [ 3 ]grade
Parts of an Array
int num[5];
Primitive datatype Integer thatsets the homogenouscharacteristic of the array
The name of the array that acts likea pointer for all array’s subscripts
This represents the number of elementsIn the array
The array declaration example.
Array Subscript
Array Element
• Array elements are the scalar data that make up an array.
Index or Subscript Element
num[0] num[0] = 1
num[1] num[1] = 2
num[2] num[2] = 3
num[3] num[3] = 4
Seen at right part of the table the numbers 1-4 are the elements also known as array values
Defining the size of the array
• It is a good programming practice to define the size of an array as symbolic constant
• Example#define size 10
int a[size];
Initialization of an Array
• Arrays may be a storage class automatic, external or static, but not a register.
• Examplefloat f[5] ={0.0, 1.0, 2.0, 3.0, 4.0};
This above example put initial value for subscript f[0]to 0.0, f[1]to 1.0 and so on
Initialization of an Array
If a list of initializers is shorter, then the rest of the remaining elements are initialized to zero.
int a[100] = {0};
Initializes all the elements of a to zero.
Initialization of an Array
• If an array is declared without a size and initialized by a series of values, it implicitly assumes the count of the initializers is the size of the array. Thus,
int a[ ]={2,3,5,-4};
and int a[4]={2,3,5,-7};
are equivalent declarations.
Initialization of an Array
• This feature works with character arrays as well.
char s[ ] = “abc”;
is equivalent to,
char s[ ] = {‘a’, ‘b’, ‘c’, ‘\0’};
Subscripting
• Let us assume that the declaration int i, a[N];
• Has been made, where N is a symbolic constant.
• The expression a[i] can be made to refer to any element of the array by assignment of an appropriate value to the subscript ‘i’
• Where i >= 0 and i <= (N – 1).
Accessing the Array
• The standard programming idiom for processing array elements is with a for loop.
int a[N];for(i = 0; i<N; i++){
a[i] = i;printf(“%d\n”, i);
}
Using a for loop how can we put the numbers 1 to 10 inside a[ ] ?
Multi- Dimensional Array
Rows
Columns
int color[r] [c];
And array with 2 or more dimensions are called multi-dimensional array
[0]
[1]
[2]
[0] [1] [2]
2D array
Accessing 2D array
• 2D arrays are usually accessed by two for loops.
#define row 3#define col 5int a[row] [col];
for(i=0; i<row; i++){for(j=0; j<col; j++){
a[i][j] = j }}
0 1 2
0 1 2
0 1 2
0 1 2
0 1 2
How can we create a 2x2 matrix assigning 1 as the element of its subscripts?
Let us have an exercise.List of what to do.
• Demonstrate the parts of this array on the board.float percentage[3];
• Convert this redundant declaration to an array declaration.int num1, num2, num3, num4, num5;int a1, a2, a3, a4;
• Create an array declaration of the datatype char and initialize all the English alphabet letters from “a-z” inside the array.
• Given array: float decimal[] = { 2.3 , 3.4, 4.5 , 5.6};
What is the value of subscript decimal[3]?What is value of subscript decimal[0]?
Advanced Question:Given array: int num[5] = {1, 2, 3}; num[0] + num[2]?num[2] + num[4]?num[3] + num[5]?
Summary
• Demonstrate the parts of an array.• Create an array declaration.• Demonstrate an array with initial values.• Demonstrate the Array subscripting
procedure.• Demonstrate array processing• Create Multidimensional Array• Multidimensional Array Processing
End
• Next Training – Single Dimensional Array–Multidimensional Array