Functions Pass by Value Pass by Reference IC
Functions -----Pass by Value Pass by Reference IC 210
Arguments vs. Parameters Arguments: • function call • actual values passed to function Parameters: • Placeholder in function heading waiting for arguments answer = cube (x); double cube (double input. Val) Argument (function call) parameter (function heading)
What is the output? int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } a C e u l a b ll V y ? ? 5
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X results Double. It 5 ?
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results ? Double. It ?
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results ? Double. It ? y ?
Call by value: “Sending a copy” int Double. It (int); X int main ( ) results { int x = 5; int results = Double. It (x); Double. It cout << x; X’s value is copied into Y y return 1; } int Double. It (int y) } y = 2*y; return y; } 5 ? ? ?
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results ? Double. It ? y 5
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results ? Double. It ? y 5 10
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results ? Double. It 10 y 10
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results ? Double. It 10 y 10
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results 10 Double. It 10
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results 10 Double. It ?
Call by value: “Sending a copy” int Double. It (int); int main ( ) { int x = 5; int results = Double. It (x); cout << x; return 1; } int Double. It (int y) } y = 2*y; return y; } X 5 results 10 Double. It ?
What is the output? y b l l e a c C ren e f e R int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) // Function Definition { int z = y; y = 2 * y; return y + z; } 14, 21 ? ?
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) // Function Definition { int z = y; y = 2 * y; return y + z; } Triple. It x 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) // Function Definition { int z = y; y = 2 * y; return y + z; } results ? Triple. It x 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results ? Triple. It ? x 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results ? Triple. It ? x 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { is ss dre ad X’s int z = y; y = 2 * y; return y + z; } results ? Triple. It ? y, x 7 referenced
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results ? Triple. It ? y, x 7 z 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results Triple. It ? ? y, x 14 7 z 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results ? Triple. It 21 ? y, x 14 z 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results ? Triple. It 21 _y, x 14 z 7
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results 21 Triple. It 21 x 14
Call by reference: “Getting the original” int Triple. It (int&); // Prototype int main ( ) // Function Definition { int x = 7; int results = Triple. It (x); cout << x << “, “ << results; return 1; } int Triple. It (int& y) { int z = y; y = 2 * y; return y + z; } results 21 Triple. It ? x 14
- Slides: 26