I heard that all global variables are static..

If its so then what is the difference between the 2 declarations:
Code:
#include<stdio.h>

int a;
static int b;

main()
{
....
}
What is the difference between there visibility and how long they remain in memory?