[go: up one dir, main page]

0% found this document useful (0 votes)
25 views15 pages

Array

One-dimensional arrays allow storing a list of values of the same type under a single name. Elements are accessed via an index from 0 to the array size minus 1. Two-dimensional arrays similarly store rows and columns of elements accessed by row and column indices. Arrays can be initialized during declaration. When an array is passed to a function, it is passed by reference so the function receives the starting address of the array and can access all elements.

Uploaded by

Yatharth jaiswal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views15 pages

Array

One-dimensional arrays allow storing a list of values of the same type under a single name. Elements are accessed via an index from 0 to the array size minus 1. Two-dimensional arrays similarly store rows and columns of elements accessed by row and column indices. Arrays can be initialized during declaration. When an array is passed to a function, it is passed by reference so the function receives the starting address of the array and can access all elements.

Uploaded by

Yatharth jaiswal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Arrays

One-Dimensional Arrays
► A list of values with the same data type that are stored using a single
group name (array name).
► General array declaration statement:
data-type array-name[number-of-items];
► The number-of-items must be specified before declaring the array.
const int SIZE = 100;
float arr[SIZE];
One-Dimensional Arrays
(cont.)
► Individual elements of the array can be accessed by
specifying the name of the array and the element's index:
arr[3]
► Warning: indices assume values from 0 to number-of-items
-1!!
One-Dimensional Arrays (cont.)
The array name arr identifies the
starting location of the array

arr[0] arr[1] arr[2] arr[3] arr[4]

element 3

Skip over 3 elements to get


the starting location of
element 3

Start here
1D Array Initialization
► Arrays can be initialized during their declaration
int arr[5] = {98, 87, 92, 79, 85};
int arr[5] = {98, 87} - what happens in this case??
► What is the difference between the following two
declarations ?
char codes[] = {'s', 'a', 'm', 'p', 'l', 'e'};
char codes[] = "sample";

codes[0] codes[1] codes[2] codes[3] codes[4] codes[5] codes[6]

s a m p l e \0
Two-dimensional Arrays
► A two-dimensional array consists of both rows and columns of elements.

► General array declaration statement:


data-type array-name[number-of-rows][number-of-columns];
Two-dimensional Arrays
(cont.)
► The number-of-rows and number-of-columns
must be specified before declaring the array.
const int ROWS = 100;
const int COLS = 50;
float arr2D[ROWS][COLS];
► Individual elements of the array can be
accessed by specifying the name of the array
and the element's row, column indices.
arr2D[3][5]
2D Array Initialization

► Arrays can be initialized during their declaration


int arr2D[3][3] = { {98, 87, 92}, {79, 85, 19},
{32, 18, 2} };
► The compiler fills the array row by row (elements are stored
in the memory in the same order).
1D Arrays as Arguments

► Individual array elements are passed to a function in the


same manner as other variables.
max = find_max(arr[1], arr[3]);
► To pass the whole array to a function, you need to specify
the name of the array only!!
#include <iostream.h>

float find_average(int [], int);

void main()
{
const numElems = 5;
int arr[numElems] = {2, 18, 1, 27, 16};

cout << "The average is " << find_average(arr, numElems) << endl;
}

float find_average(int vals[], int n)


{
int i;
float avg;

avg=0.0;
for(i=0; i<n; i++)
avg += vals[i];

avg = avg/n;

return avg;
}
1D Arrays as Arguments (cont.)
► Important: this is essentially "call by reference":
a) The name of the array arr stores the address of the
first element of the array arr[0] (i.e., &arr[0]).
b) Every other element of the array can be accessed by
using its index as an offset from the first element.

arr[0] arr[1] arr[2] arr[3] arr[4]

The starting address of arr array is &arr[0].


This is passed to the function find_average()
2D Arrays as Arguments

► Individual array elements are passed to a


function in the same manner as other
variables.
max = find_max(arr2D[1][1], arr2D[1][2]);
► To pass the whole array to a function, you
need to specify the name of the array only!!
► The number of columns must be specified in
the function prototype and function header.
#include <iostream.h>

float find_average(int [][2], int, int);

void main()
{
const numRows = 2;
const numCols = 2;
int arr2D[numRows][numCols] = {2, 18, 1, 27};
float average;

average = find_average(arr2D, numRows, numCols);

cout << "The average is " << average << endl;


}
float find_average(int vals[][2], int n, int m)
{
int i,j;
float avg;

avg=0.0;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
avg += vals[i][j];

avg = avg/(n*m);

return avg;
}
2D Arrays as Arguments (cont.)
► Important: this is essentially "call by reference":
a) The name of the array arr2D stores the address of arr2D[0] (i.e.,
&arr2D[0])
b) arr2D[0] stores the address of the first element of the array arr2D[0][0]
(&arr2D[0][0])
c) Every other element of the array can be accessed by using its indices as
an offset from the first element.

You might also like