A static variable in C++ retains its value between function calls and is initialized only once. It exists for the entire program duration, maintaining its value throughout execution. Unlike automatic variables, static variables do not get re-initialized on each function call.