title: for loop initial declaration error
body: <p>In my code I can't initialize variables in for loop initialization part.
  When I write this code:</p>
  
  <pre><code>    long unsigned int arr[3][3];
  char str[50];
  for(;gets(str);)
  {
      int temp=0;
      for(int i,j,k=0; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);
  </code></pre>
  
  <p>the compiler shows</p>
  
  <pre><code>error: 'for' loop initial declarations are only allowed in c99 mode
  </code></pre>
  
  <p>I have no idea what that means,
  but if I write my code like this:</p>
  
  <pre><code>    long unsigned int arr[3][3];
  char str[50];
  for(;gets(str);)
  {
      int temp=0;
      int i,j,k=0;
      for(; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);
  </code></pre>
  
  <p>it works fine.
  Why is this happening?</p>