/********************************************************/
// R. A. Hillyard
// funIntro1b.cpp
// intro to features and requirements
// of user defined functions
// pass-by-value parameters
// use the "&" address of operator to illustrate scope
// of pass-by-value parameters
/********************************************************/
#include<iostream>
using namespace std;
const double GlobalOne = 9.7531;
double min(double x, double y); //function prototype - note parameter names
int main()
{
double x = 3.66, y = 3.60, c = 0.0;
cout << "In main:\n at address: " << &x << " x = " << x << endl;
cout << " at address: " << &y << " y = " << y << endl;
cout << " at address: " << &c << " c = " << c << endl;
cout << " at address: " << &GlobalOne << " GlobalOne = " << GlobalOne << endl;
//function call - return value will be assigned to c
c = 100.0 + min(x, y); //function call with actual parameters
cout << "\nc = " << c << "\n\n";
cout << "In main:\n at address: " << &x << " x = " << x << endl;
cout << " at address: " << &y << " y = " << y << endl;
cout << " at address: " << &c << " c = " << c << endl;
cout << " at address: " << &GlobalOne << " GlobalOne = " << GlobalOne << endl;
return 0;
}
/********************************************************/
//min - returns the smallest of two floating point numbers
/********************************************************/
double min(double x, double y)
{
cout << "In function:\n at address: " << &x << " x = " << x << endl;
cout << " at address: " << &y << " y = " << y << endl;
cout << " at address: " << &GlobalOne << " GlobalOne = " << GlobalOne << endl;
//The variable c is not visible here
//compiler will issue an "undefined identifier" error
//cout << " at address: " << &c << " c = " << c << endl;
y = GlobalOne;
if(x < y)
return x;
return y;
}//end min
/********************************************************/
//program output
/********************************************************/
In main:
at address: 0x0012ff84 x = 3.66
at address: 0x0012ff8c y = 3.6
at address: 0x0012ff94 c = 0
at address: 0x0041b020 GlobalOne = 9.7531
In function:
at address: 0x0012ff74 x = 3.66
at address: 0x0012ff7c y = 3.6
at address: 0x0041b020 GlobalOne = 9.7531
c = 103.66
In main:
at address: 0x0012ff84 x = 3.66
at address: 0x0012ff8c y = 3.6
at address: 0x0012ff94 c = 103.66
at address: 0x0041b020 GlobalOne = 9.7531
/********************************************************/