What does the following code write to the monitor?
#include <stdio.h> void myFunction( int x ) { printf(" x=%d\n", x ); x = 123; printf(" x=%d\n", x ); } void main ( void ) { int a = 77; printf("a=%d\n", a ); myFunction( a+11 ); printf("a=%d\n", a ); }
In this puzzle, the argument in the function call is the expression a+11
.
When the function is called, the expression is evaluated, and the resulting
value of 88 is copied into the parameter x
.
The point of this example is to emphasize that what is copied into a parameter
is calculated at run-time using a
but is not directly a
and does not give access to a
.