PROGRAMMING IN C
ARRAYS
DR.M.UMADEVI
ASSISTANT PROFESSOR
DEPARTMENT OF CS
SACWC
CUMBUM
INTRODUCTION IN C
• C programming language provides a data structure called the array, which can store a
fixed-size sequential collection of elements of the same type.
• An array is used to store a collection of data, but it is often more useful to think of an
array as a collection of variables of the same type.
• Instead of declaring individual variables, such as number0, number1, ..., and number99,
you declare one array variable such as numbers and use numbers[0], numbers[1], and ...,
numbers[99] to represent individual variables.
• A specific element in an array is accessed by an index.
• All arrays consist of contiguous memory locations. The lowest address corresponds to
the first element and the highest address to the last element.
INTRODUCTION IN C
• Declaring Arrays
• To declare an array in C, a programmer specifies the type of the elements and the
number of elements required by an array as follows:
• type arrayName [ arraySize ];
• This is called a single-dimensional array. The arraySize must be an integer constant
greater than zero and type can be any valid C data type. For example, to declare a
10element array called balance of type double, use this statement:
• double balance[10];
• Now balance is a variable array which is sufficient to hold up-to 10 double numbers.
INTRODUCTION IN C
Initializing Arrays
You can initialize array in C either one by one or using a single statement as follows:
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
The number of values between braces { } can not be larger than the number of elements that we declare for
the array between square brackets [ ]. Following is an example to assign a single element of the array:
If you omit the size of the array, an array just big enough to hold the initialization is created. Therefore, if
you write:
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
You will create exactly the same array as you did in the previous example.
balance[4] = 50.0;
The above statement assigns element number 5th in the array a value of 50.0. Array with 4th index will be
5th i.e. last element because all arrays have 0 as the index of their first element which is also called base
index. Following is the pictorial representation of the same array we discussed above: .
INTRODUCTION IN C
Accessing Array Elements
An element is accessed by indexing the array name. This is done by placing the index of the
element within square brackets after the name of the array. For example
double salary = balance[9];
The above statement will take 10th element from the array and assign the value to salary
variable. Following is an example which will use all the above mentioned three concepts viz.
declaration, assignment and accessing arrays:
#include <stdio.h>
int main () { int n[ 10 ];
/* n is an array of 10 integers */
int i,j; /* initialize elements of array n to 0 */
for ( i = 0; i < 10; i++ )
INTRODUCTION IN C
{ n[ i ] = i + 100; /* set element at location i to i + 100 */
} /* output each array element's value */
for (j = 0; j < 10; j++ )
{
printf("Element[%d] = %dn", j, n[j] );
} return 0;
}
INTRODUCTION IN C
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
INTRODUCTION IN C
Multi-dimensional Arrays
C programming language allows multidimensional arrays. Here is the general form of a
multidimensional array declaration:
type name[size1][size2]...[size
For example, the following declaration creates a three dimensional 5 . 10 . 4 integer array:
int threedim[5][10][4]; Two-Dimensional Arrays
The simplest form of the multidimensional array is the two-dimensional array. A
twodimensional array is, in essence, a list of one-dimensional arrays. To declare a
twodimensional integer array of size x, y you would write something as follows:
type arrayName [ x ][ y ]; N];
INTRODUCTION IN C
Where type can be any valid C data type and arrayName will be a valid C identifier. A
twodimensional array can be think as a table which will have x number of rows and y
number of columns. A 2-dimentional array a, which contains three rows and four columns
can be shown as below:
Thus, every element in array a is identified by an element name of the form a[ i ][ j ],
where a is the name of the array, and i and j are the subscripts that uniquely identify each
element in a.
INTRODUCTION IN C
Initializing Two-Dimensional Arrays
Multidimensional arrays may be initialized by specifying bracketed values for each row.
Following is an array with 3 rows and each row has 4 columns.
int a[3][4] = {
{0, 1, 2, 3} , /* initializers for row indexed by 0 */
{4, 5, 6, 7} , /* initializers for row indexed by 1 */
{8, 9, 10, 11} /* initializers for row indexed by 2 */ };
The nested braces, which indicate the intended row, are optional. The following
initialization is equivalent to previous example:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
INTRODUCTION IN C
Initializing Two-Dimensional Arrays
Multidimensional arrays may be initialized by specifying bracketed values for each row.
Following is an array with 3 rows and each row has 4 columns.
int a[3][4] = {
{0, 1, 2, 3} , /* initializers for row indexed by 0 */
{4, 5, 6, 7} , /* initializers for row indexed by 1 */
{8, 9, 10, 11} /* initializers for row indexed by 2 */ };
The nested braces, which indicate the intended row, are optional. The following
initialization is equivalent to previous example:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
INTRODUCTION IN C
Pointer to an Array
It is legal to use array names as constant pointers, and vice versa. Therefore, *(balance + 4) is a legitimate way of accessing the
data at balance[4].
Once you store the address of first element in p, you can access array elements using *p, *(p+1), *(p+2) and so on. Below is the
example to show all the concepts discussed above:
#include <stdio.h>
int main () { /* an array with 5 elements */
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
double *p; int i;
p = balance; /* output each array element's value */ printf( "Array values using pointern"); for ( i = 0; i < 5; i++ )
{ printf("*(p + %d) : %fn", i, *(p + i) ); }
printf( "Array values using balance as addressn"); for ( i = 0; i < 5; i++ ) { printf("*(balance + %d) : %fn", i,
*(balance + i) ); } return 0;
THANK YOU

Programming in c arrays

  • 1.
    PROGRAMMING IN C ARRAYS DR.M.UMADEVI ASSISTANTPROFESSOR DEPARTMENT OF CS SACWC CUMBUM
  • 2.
    INTRODUCTION IN C •C programming language provides a data structure called the array, which can store a fixed-size sequential collection of elements of the same type. • An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type. • Instead of declaring individual variables, such as number0, number1, ..., and number99, you declare one array variable such as numbers and use numbers[0], numbers[1], and ..., numbers[99] to represent individual variables. • A specific element in an array is accessed by an index. • All arrays consist of contiguous memory locations. The lowest address corresponds to the first element and the highest address to the last element.
  • 3.
    INTRODUCTION IN C •Declaring Arrays • To declare an array in C, a programmer specifies the type of the elements and the number of elements required by an array as follows: • type arrayName [ arraySize ]; • This is called a single-dimensional array. The arraySize must be an integer constant greater than zero and type can be any valid C data type. For example, to declare a 10element array called balance of type double, use this statement: • double balance[10]; • Now balance is a variable array which is sufficient to hold up-to 10 double numbers.
  • 4.
    INTRODUCTION IN C InitializingArrays You can initialize array in C either one by one or using a single statement as follows: double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; The number of values between braces { } can not be larger than the number of elements that we declare for the array between square brackets [ ]. Following is an example to assign a single element of the array: If you omit the size of the array, an array just big enough to hold the initialization is created. Therefore, if you write: double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0}; You will create exactly the same array as you did in the previous example. balance[4] = 50.0; The above statement assigns element number 5th in the array a value of 50.0. Array with 4th index will be 5th i.e. last element because all arrays have 0 as the index of their first element which is also called base index. Following is the pictorial representation of the same array we discussed above: .
  • 5.
    INTRODUCTION IN C AccessingArray Elements An element is accessed by indexing the array name. This is done by placing the index of the element within square brackets after the name of the array. For example double salary = balance[9]; The above statement will take 10th element from the array and assign the value to salary variable. Following is an example which will use all the above mentioned three concepts viz. declaration, assignment and accessing arrays: #include <stdio.h> int main () { int n[ 10 ]; /* n is an array of 10 integers */ int i,j; /* initialize elements of array n to 0 */ for ( i = 0; i < 10; i++ )
  • 6.
    INTRODUCTION IN C {n[ i ] = i + 100; /* set element at location i to i + 100 */ } /* output each array element's value */ for (j = 0; j < 10; j++ ) { printf("Element[%d] = %dn", j, n[j] ); } return 0; }
  • 7.
    INTRODUCTION IN C Element[0]= 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
  • 8.
    INTRODUCTION IN C Multi-dimensionalArrays C programming language allows multidimensional arrays. Here is the general form of a multidimensional array declaration: type name[size1][size2]...[size For example, the following declaration creates a three dimensional 5 . 10 . 4 integer array: int threedim[5][10][4]; Two-Dimensional Arrays The simplest form of the multidimensional array is the two-dimensional array. A twodimensional array is, in essence, a list of one-dimensional arrays. To declare a twodimensional integer array of size x, y you would write something as follows: type arrayName [ x ][ y ]; N];
  • 9.
    INTRODUCTION IN C Wheretype can be any valid C data type and arrayName will be a valid C identifier. A twodimensional array can be think as a table which will have x number of rows and y number of columns. A 2-dimentional array a, which contains three rows and four columns can be shown as below: Thus, every element in array a is identified by an element name of the form a[ i ][ j ], where a is the name of the array, and i and j are the subscripts that uniquely identify each element in a.
  • 10.
    INTRODUCTION IN C InitializingTwo-Dimensional Arrays Multidimensional arrays may be initialized by specifying bracketed values for each row. Following is an array with 3 rows and each row has 4 columns. int a[3][4] = { {0, 1, 2, 3} , /* initializers for row indexed by 0 */ {4, 5, 6, 7} , /* initializers for row indexed by 1 */ {8, 9, 10, 11} /* initializers for row indexed by 2 */ }; The nested braces, which indicate the intended row, are optional. The following initialization is equivalent to previous example: int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
  • 11.
    INTRODUCTION IN C InitializingTwo-Dimensional Arrays Multidimensional arrays may be initialized by specifying bracketed values for each row. Following is an array with 3 rows and each row has 4 columns. int a[3][4] = { {0, 1, 2, 3} , /* initializers for row indexed by 0 */ {4, 5, 6, 7} , /* initializers for row indexed by 1 */ {8, 9, 10, 11} /* initializers for row indexed by 2 */ }; The nested braces, which indicate the intended row, are optional. The following initialization is equivalent to previous example: int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
  • 12.
    INTRODUCTION IN C Pointerto an Array It is legal to use array names as constant pointers, and vice versa. Therefore, *(balance + 4) is a legitimate way of accessing the data at balance[4]. Once you store the address of first element in p, you can access array elements using *p, *(p+1), *(p+2) and so on. Below is the example to show all the concepts discussed above: #include <stdio.h> int main () { /* an array with 5 elements */ double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; double *p; int i; p = balance; /* output each array element's value */ printf( "Array values using pointern"); for ( i = 0; i < 5; i++ ) { printf("*(p + %d) : %fn", i, *(p + i) ); } printf( "Array values using balance as addressn"); for ( i = 0; i < 5; i++ ) { printf("*(balance + %d) : %fn", i, *(balance + i) ); } return 0;
  • 13.