- It’s a group of related data items that share a common name
- Index number or subscript to differentiate the data items
- Individual items are called elements
- Arrays can be of any variable type
- Ex. int roll_no [10]
One Dimensional Arrays
- A single subscripted variable is called one dimensional array
- In C x[5] represents the same concept as in mathematics X5
- To represent a set of five scores (75,12,33, 105, 67) by Tendulkar, we may define as follows, int Ten_scores[5];
- Ten_scores[0] = 75 …
Elements
- Space is reserved for each element as usual
- Each element is treated as an individual variable
- C provides no bound checking for array indices!
- The subscript of an array can be an integer constant, integer variables, or an expression which yields integer value
Declaration of Arrays
- type_of_element name_of_array[size]
- int amount[5], float marks[30] etc
- char name[10] can actually have only 9 characters in it!
- int ten_scores[5] = {75,12,33, 105, 67} initializes the array with respective values
- If lesser items are specified in the init list, other elements will have zeroes
Need For Static
- Automatic arrays can not be initialized in K&R C, ANSI C allows that
- In K&R C one need to have static arrays to initialize it
- So if we write static word before initialization, it can work with old K&R compiler as well!
Other Issues for Initialization
- The size may be omitted at the time of initialization like int no[]={2,4,7,4,6,9}
- char name[]={‘S’,’y’,’n’,’t’,’a’,’x’} can also be written as
- char name[]=“Syntax”
- In C there is no convenient way to initialize specified elements
- No shortcut for large no of elements
Two Dimensional Arrays
|
Item1
|
Item2
|
Item3
|
SalesMan1
|
234
|
5876
|
4985
|
SalesMan2
|
123
|
4756
|
5869
|
SalesMan3
|
125
|
5964
|
5695
|
SalesMan4
|
241
|
5896
|
9876
|
Defining 2D Arrays
- type array_name [size1] [size2]
- int sales[4] [3] in above case
- As with single dimension arrays, each dimension of an array is indexed from 0 to 1- maximum size
- The first index indicates row and the second index indicates column
Representation Of 2D Arrays
|
Column0
|
Column1
|
Column2
|
|
[0][0]
|
[0][1]
|
[0][2]
|
Row0
|
234
|
5876
|
4985
|
|
[1][0]
|
[1][1]
|
[1][2]
|
Row1
|
123
|
4756
|
5869
|
|
[2][0]
|
[2][1]
|
[2][2]
|
Row2
|
125
|
5964
|
5695
|
|
[3][0]
|
[3][1]
|
[3][2]
|
Row3
|
241
|
5896
|
9876
|
Initializing 2D Arrays
- static int table[2,3] = {1,3,5,7,9,2}
- static int table[2,3] = {{1,3,5}, {7,9,2}}
- static int table[2,3] = {{1,3,5}, {7,9,2}}
- Missing will initialized to zeros in static int[2,3] = { {1},{2,3} }
- Static int m[5] = {{0},{0},{0}} for all zeros
Multidimensional Arrays
- C allows arrays of more than two dimensions.
- Exact limit is determined by the compiler
- Size is more imp than the no of dimensions
- Survey of rainfall of last 3 years of all 12 months of five cities: int survey [3][12][5]
- View multidimensional arrays as repeated 2D arrays