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
?
The first acts as a forward declaration, and the later acts as the actual definition.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With