0

This is a program which I came across on the net that calculates the value of .

#include <stdlib.h>
#include <stdio.h>

long a=10000,b,c=2800,d,e,f[2801],g;//--------HERE the value of b---------//

int main()
{
    printf("\nValue of b: %ld", b);
    getch();
    for(;b-c;)
        f[b++]=a/5;
    for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
        for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}

The calculated value is correct. But how could the programmer be sure that the initial value of b would be 0?

It does not seem to be initialized at all!

Is there some specialty about initial value of global variables?

StepUp
  • 36,391
  • 15
  • 88
  • 148
J...S
  • 5,079
  • 1
  • 20
  • 35

1 Answers1

0

As pointed out in this question, global variables are initialized to 0 by default.

In your code, b is declared as a global variable.

Community
  • 1
  • 1