Subroutines and Parameter Passing
ECE2893 Lecture 5
ECE2893 Subroutines and Parameter Passing Spring 2011 1 / 10
Subroutines and Parameter Passing ECE2893 Lecture 5 ECE2893 - - PowerPoint PPT Presentation
Subroutines and Parameter Passing ECE2893 Lecture 5 ECE2893 Subroutines and Parameter Passing Spring 2011 1 / 10 C/C++ Subroutines (Functions) ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10 C/C++ Subroutines (Functions)
ECE2893 Subroutines and Parameter Passing Spring 2011 1 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
2
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
2
3
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
2
3
4
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
2
3
4
5
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
2
3
4
5
6
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
1
2
3
4
5
6
7
ECE2893 Subroutines and Parameter Passing Spring 2011 2 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
1
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
1
2
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
1
2
1
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
1
2
1
2
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
1
2
1
2
3
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
1
2
1
2
3
4
ECE2893 Subroutines and Parameter Passing Spring 2011 3 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 4 / 10
1
ECE2893 Subroutines and Parameter Passing Spring 2011 4 / 10
1
2
ECE2893 Subroutines and Parameter Passing Spring 2011 4 / 10
1
2
3
ECE2893 Subroutines and Parameter Passing Spring 2011 4 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 5 / 10
1
ECE2893 Subroutines and Parameter Passing Spring 2011 5 / 10
1
2
ECE2893 Subroutines and Parameter Passing Spring 2011 5 / 10
1
2
3
ECE2893 Subroutines and Parameter Passing Spring 2011 5 / 10
1
2
3
4
ECE2893 Subroutines and Parameter Passing Spring 2011 5 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 6 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 7 / 10
1
ECE2893 Subroutines and Parameter Passing Spring 2011 7 / 10
1
2
ECE2893 Subroutines and Parameter Passing Spring 2011 7 / 10
1
2
3
ECE2893 Subroutines and Parameter Passing Spring 2011 7 / 10
1
2
3
4
ECE2893 Subroutines and Parameter Passing Spring 2011 7 / 10
/ / I l l u s t r a t e passing array arguments by reference / / George F . Riley , Georgia Tech , ECE2893 #include " ece2893 . h" void Sub1( int d [ ] , int n ) { / / Sub1 can change array d , and the c a l l e r " sees " the changes int i = 0; while ( i < n ) { d [ i ] = d [ i ] ∗ 10; / / Change each element in d i = i + 1; } } int main ( ) { const int sz = 5; / / Size
array int d [ sz ] = { 1 , 2 , 3 , 4 , 5 } ; int i = 0; while ( i < sz ) { PrintLn ( " Before Sub1 , d [ " , i , " ] i s " , d [ i ] ) ; i = i + 1; } Sub1(d , sz ) ; i = 0; while ( i < sz ) { PrintLn ( " After Sub1 , d [ " , i , " ] i s " , d [ i ] ) ; i = i + 1; } }
The resulting output from this program is: Before Sub1, d[0] is 1 Before Sub1, d[1] is 2 Before Sub1, d[2] is 3 Before Sub1, d[3] is 4 Before Sub1, d[4] is 5 After Sub1, d[0] is 10 After Sub1, d[1] is 20 After Sub1, d[2] is 30 After Sub1, d[3] is 40 After Sub1, d[4] is 50
ECE2893 Subroutines and Parameter Passing Spring 2011 8 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 9 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10
ECE2893 Subroutines and Parameter Passing Spring 2011 10 / 10