Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 749
haccks Avatar asked Dec 11 '22 08:12

haccks


1 Answers

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

like image 170
Some programmer dude Avatar answered Jan 30 '23 22:01

Some programmer dude