/* scope2.c -- Example on scope rules
*/
#include <stdio.h>
int x = 2;
int y = 3;
int z = 4;
void moo(int x, int *y){
int z;
x = x+3;
*y = *y+3;
z = z+3; /*Here z is the local z. Notice that it has not been
initialized. As you see from the output below
in this case it was implicitly initialized to 0.
In general that is not the case and the compiler
should give you a warning
*/
printf("moo : x = %1d, *y = %1d, y = %1d, z = %1d\n", x,*y,y,z);
}
int main(void){
moo(x, &y);
printf("main: x = %1d1, y = %1d, z = %1d\n", x,y,z);
}
/* The output is
moo : x = 5, *y = 6, y = 1073742056, z = 3
main: x = 21, y = 6, z = 4
*/
0 comments:
Post a Comment