Search code examples
cscopecontrol-structure

Is it possible that a variable declared after the main has file scope?


After running this code:

#include <stdio.h>
int x;
int main(void)
{
    printf("%d\n",x);
    return 0;
}
int x=5; 

I expected the output should be 0. Because of the sequence control structure of the program int x; should be executed first and then 0 is printed and finally int x=5; should be executed. But it is giving the output 5.

How is the program accesses 5 for the x in printf?


Solution

  • The first acts as a forward declaration, and the later acts as the actual definition.