// scope.cpp, Maggie Johnson // Description: A program to illustrate different scopes #include <iostream> using namespace std; // The following 2 variables are global, that is, they // are available inside any function in the program. // If there is a local variable of the same name (either // a or b) in a function, then the local variable overrides. // the global. It is typically not a good idea to use // global variables, as they can be hard to track. int a = 18; int b = 6; // This function assigns "a" and "b" to the incoming parameters. // Notice that the local value of b in main is passed in as a, // and the global value of a is passed in as b. int function1(int a, int b) { return a - b; } // This function adds the two global variables, a and b together // and assigns the sum to a local variable c. This value is // returned. The c variable is no longer available once this // function has completed its execution. int function2() { int c; c = a + b; return c; } int main (void) { // We override the global value of b in this function with // this local variable, int b = 12; // We initialize a variable called c, which is different from // the one declared in function 2(). int c = 0; // The global variable a is assigned 12 - 18 = -6 in the next // line. a = function1(b, a); // The local variable c is assigned the sum of the two global // variables. Note that the previous line modified the global // variable a, which now equals -6. Thus, c has the value of // -6 + 6 = 0. c = function2(); // We print the value of the global variable a (-6), the local // value of b (12), and the local value of c (0). cout << "a: " << a << " b: " << b << " c: " << c << endl; }