Lab 8: Experiment 9

Using a Twice-Declared Identifier in Inner Block

Issue: Suppose an identifier has two different declarations, one in an outer block and one in a nested inner block. If the name is accessed within the inner block, which declaration is used?

Hypothesis: The closest definition will be used.

Proximity sounds like a good rule of thumb. Whatever was done most recently matters the most, right?

The Experiment: When we display the value of arg1 within the inner block, following its second declaration, we can get an answer to our question:

int main()
  int arg1;
  arg1 = -1;
    char arg1 = 'A';
    cout << arg1 << endl;

Question #8.9.1: If -1 is printed, what does this mean?

Question #8.9.2: If A is printed, what does this mean?

Observation: Compile and execute your program.

Question #8.9.3: What does the program display?

Yes, you already wrote this down for the previous experiment. It won't hurt you to write it again.


Question #8.9.4: Is our hypothesis correct? How do you know? If it's not correct, what should it be?

Back to the Lab Exercise  |  Forward to the Next Experiment
© 2003 by Prentice Hall. All rights reserved.
Report all errors to Jeremy D. Frens.