0% found this document useful (0 votes)
62 views16 pages

ITC Lect 15 (Arrays-I)

This document summarizes a lecture on arrays in C++. It begins by defining arrays as structures that hold related data items of the same size. It describes different types of arrays and how to declare, initialize, and reference individual elements of an array using subscripts. It also discusses passing entire arrays and individual array elements to functions, noting that arrays are passed by reference while elements are passed by value.

Uploaded by

sayed Tamir jan
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)
62 views16 pages

ITC Lect 15 (Arrays-I)

This document summarizes a lecture on arrays in C++. It begins by defining arrays as structures that hold related data items of the same size. It describes different types of arrays and how to declare, initialize, and reference individual elements of an array using subscripts. It also discusses passing entire arrays and individual array elements to functions, noting that arrays are passed by reference while elements are passed by value.

Uploaded by

sayed Tamir jan
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/ 16

Lecture 15: Arrays CS 101: Introduction to Computing

Arrays - I

Dr. Zahid Halim

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


Lecture 15: Arrays CS 101: Introduction to Computing

Introduction
• Arrays
– Structures of related data items
– Static entity - same size throughout program
• A few types
– C-like, pointer-based arrays
– C++, arrays as objects

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


Lecture 15: Arrays CS 101: Introduction to Computing

Arrays
• Array
– Consecutive group of memory locations
– Same name and type
• To refer to an element, specify
– Array name and position number
• Format: arrayname[ position number ]
– First element at position 0
– n element array c:
c[ 0 ], c[ 1 ]…c[ n - 1 ]
• Array elements are like normal variables
c[ 0 ] = 3;
cout << c[ 0 ];
• Performing operations in subscript. If x = 3,
c[ 5 – 2 ] == c[ 3 ] == c[ x ]

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


Lecture 15: Arrays CS 101: Introduction to Computing

Arrays
Name of array (Note
that all elements of
this array have the
same name, c)

c[0] -45
c[1] 6
c[2] 0
c[3] 72
c[4] 1543
c[5] -89
c[6] 0
c[7] 62
c[8] -3
c[9] 1
c[10] 6453
c[11] 78

Position number of the


element within array c

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


Lecture 15: Arrays CS 101: Introduction to Computing

Declaring Arrays
• Declaring arrays - specify:
– Name
– Type of array
– Number of elements
– Examples
int c[ 10 ];
float hi[ 3284 ];

• Declaring multiple arrays of same type


– Similar format as other variables
– Example
int b[ 100 ], x[ 27 ];

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


Lecture 15: Arrays CS 101: Introduction to Computing

Examples Using Arrays


• Initializers
int n[ 5 ] = { 1, 2, 3, 4, 5 };
– If not enough initializers, rightmost elements become 0
– If too many initializers, a syntax error is generated
int n[ 5 ] = { 0 }
– Sets all the elements to 0
• If size omitted, the initializers determine it
int n[] = { 1, 2, 3, 4, 5 };
– 5 initializers, therefore n is a 5 element array

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


1 // Fig. 4.4: fig04_04.cpp
2 // Initializing an array with a declaration
3 #include <iostream>
4
5 using std::cout;
6 using std::endl;
7
8 #include <iomanip>
9 Notice how they array is declared
10 using std::setw; and elements referenced.
11
12 int main()
13 {
14 int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };
15
16 cout << "Element" << setw( 13 ) << "Value" << endl;
17
18 for ( int i = 0; i < 10; i++ )
19 cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl;
20
21 return 0;
22 }
Element Value
0 32
1 27
2 64
3 18
4 95
5 14
6 90
7 70
8 60
9 37
1 // Fig. 4.7: fig04_07.cpp
2 // A const object must be initialized
3
4 int main()
5 {
6 const int x; // Error: x must be initialized
7 Notice that const variables must be initialized
8 x = 7; because
// Error: they cannot
cannot be modified
modify a constlater. variable

9
10 return 0;
11 }

Fig04_07.cpp:
Error E2304 Fig04_07.cpp 6: Constant variable 'x' must be
initialized in function main()
Error E2024 Fig04_07.cpp 8: Cannot modify a const object in
function main()
*** 2 errors in Compile ***
Lecture 15: Arrays CS 101: Introduction to Computing

Examples Using Arrays


• Strings
– Arrays of characters
– All strings end with null ('\0')
– Examples:
char string1[] = "hello";
char string1[] = { 'h', 'e', 'l', 'l', 'o',
'\0’ };
– Subscripting is the same as for a normal array
String1[ 0 ] is 'h'
string1[ 2 ] is 'l'
• Input from keyboard
char string2[ 10 ];
cin >> string2;
– Takes user input
– Side effect: if too much text entered, data written beyond array

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


1 // Fig. 4_12: fig04_12.cpp
2 // Treating character arrays as strings
3 #include <iostream>
4 Inputted strings are
5 using std::cout; separated by whitespace
6 using std::cin; characters. "there"
7 using std::endl; stayed in the buffer.
8
9 int main()
10 {
11 char string1[ 20 ], string2[] = "string literal";
12
13 cout << "Enter a string: ";
14 cin >> string1;
15 cout << "string1 is: " << string1
16 << "\nstring2 is: " << string2
17 << "\nstring1 with spaces between characters is:\n";
18
19 for ( int i = 0; string1[ i ] != '\0'; i++ )
20 cout << string1[ i ] << ' ';
Notice how string elements are
21
referenced like arrays.
22 cin >> string1; // reads "there"
23 cout << "\nstring1 is: " << string1 << endl;
24
25 cout << endl;
26 return 0;
27 }

Enter a string: Hello there


string1 is: Hello
string2 is: string literal
string1 with spaces between characters is:
H e l l o
string1 is: there
Lecture 15: Arrays CS 101: Introduction to Computing

Passing Arrays to Functions


• Specify the name without any brackets
– To pass array myArray declared as
int myArray[ 24 ];
to function myFunction, a function call would resemble
myFunction( myArray, 24 );
– Array size is usually passed to function
• Arrays passed call-by-reference
– Value of name of array is address of the first element
– Function knows where the array is stored
• Modifies original memory locations
• Individual array elements passed by call-by-value
– pass subscripted name (i.e., myArray[ 3 ]) to function

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


Lecture 15: Arrays CS 101: Introduction to Computing

Passing Arrays to Functions


• Function prototype:
void modifyArray( int b[], int arraySize );
– Parameter names optional in prototype
• int b[] could be simply int []
• int arraysize could be simply int

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi


1 // Fig. 4.14: fig04_14.cpp
2 // Passing arrays and individual array elements to functions
3 #include <iostream>
4
5 using std::cout;
6 using std::endl;
7
Functions can modify entire arrays.
8 #include <iomanip>
Individual array elements are not
9 modified by default.
10 using std::setw;
11
12 void modifyArray( int [], int ); // appears strange
13 void modifyElement( int );
14
No parameter names in
15 int main() function prototype.
16 {
17 const int arraySize = 5;
18 int i, a[ arraySize ] = { 0, 1, 2, 3, 4 };
19
20 cout << "Effects of passing entire array call-by-reference:"
21 << "\n\nThe values of the original array are:\n";
22
23 for ( i = 0; i < arraySize; i++ )
The values of the original array are:
24 cout << setw( 3 ) << a[ i ];
0 1 2 3 4
25
The values of the modified array are:
26 cout << endl;
0 2 4 6 8
27
28 // array a passed call-by-reference
29 modifyArray( a, arraySize );
30
31 cout << "The values of the modified array are:\n";
32
33 for ( i = 0; i < arraySize; i++ )
34 cout << setw( 3 ) << a[ i ];
35
36 cout << "\n\n\n"
37 << "Effects of passing array element call-by-value:"
38 << "\n\nThe value of a[3] is " << a[ 3 ] << '\n';
39
40 modifyElement( a[ 3 ] );
41
42 cout << "The value of a[3] is " << a[ 3 ] << endl;
43 Parameter names required in function definition
44 return 0;
45 }
46
47 // In function modifyArray, "b" points to the original
48 // array "a" in memory.
49 void modifyArray( int b[], int sizeOfArray )
50 {
Effects of passing array element call-by-
51 for ( int j = 0; j < sizeOfArray; j++ ) value:
52 b[ j ] *= 2;
53 } The value of a[3] is 6
54 Value in modifyElement is 12
55 // In function modifyElement, "e" is a localThe
copyvalue
of of a[3] is 6
56 // array element a[ 3 ] passed from main.
57 void modifyElement( int e )
58 {
59 cout << "Value in modifyElement is "
60 << ( e *= 2 ) << endl;
61 }
Effects of passing entire array call-by-reference:

The values of the original array are:


0 1 2 3 4
The values of the modified array are:
0 2 4 6 8

Effects of passing array element call-by-value:

The value of a[3] is 6


Value in modifyElement is 12
The value of a[3] is 6
Lecture 15: Arrays CS 101: Introduction to Computing

References
Dietal and Dietal : How to Program C++
3rd Edition

Ghulam Ishaq Khan Institute of Engineering Sciences and Technology, Topi

You might also like