It depends somewhat on which programming language you are using, but in general, "static" means that the variable doesn't move during the life of the program. In languages like C, ordinary variables are given memory space when a procedure starts to run, and then the memory space is given up when the procedure finishes. A static variable, however, has memory allocated to it permanently within the program, and stays in the same place for as long as the program is running, no matter what procedures and functions are executed.
In some other languages, static can mean that the variable is actually a constant and cannot be changed. The word "static" itself means "not changing," so anything called static either stays in the same place for the entire duration of a program and/or never changes its value or contents.
The other answers you see here apply only to certain languages, particularly C and C++. But there are many languages, so static can have slightly different meanings in other languages, as described above.