1

This is my code. Why does C prints a random number like 3321856? I know it's because it's an empty variable, but why this number? is it random or has some reason?

#include <stdio.h>

void main()
{
    int a;
    printf("%d", a);
}

Vlad from Moscow
  • 301,070
  • 26
  • 186
  • 335
Ziv Sion
  • 424
  • 4
  • 14

1 Answers1

1

For starters, the function main without parameters according to the C Standard shall be declared as follows.

int main( void )

Secondly, the variable a is not initialized and has an indeterminate value, so the program invokes undefined behavior.

You need to initialize the variable a with a value before outputting that value, or the output will be undefined.

The variable a is defined in the outer block scope of the function main without the storage class specifier static. So it has automatic storage duration. Such variables are not implicitly initialized.

Vlad from Moscow
  • 301,070
  • 26
  • 186
  • 335