A storage class in C defines the scope, visibility, and lifetime of variables and functions. There are four main storage classes: automatic, register, static, and extern. Automatic variables are local to the function they are declared in and are destroyed when the function exits. Static variables persist for the duration of the program, while extern variables can be accessed from any file. Register variables may be stored in processor registers for faster access.