A Storage class in C represents the scope of a variable within the program. The storage classes in C are discussed below:
| Storage Classes | Storage Place | Default Value | Scope | Life-time | Features | 
| auto | RAM | Garbage | Local | Within function | Default storage class. | 
| extern | RAM | 0 | Global | Till the end of main program | Visible to all the programs. | 
| static | RAM | 0 | Local | Till the end of main program | Retains value between multiple functions call. | 
| register | Register | Garbage | Local | Within function | Faster access than other variables. | 
Example:
| #include<stdio.h> void demo() { static int i=0; register int j=0; auto int k=0; i++; j++; k++; printf("i = %d\n", i); printf("j = %d\n", j); printf("k = %d\n", k); } void main() { demo(); printf ("\n"); demo(); printf ("\n"); demo(); } | 
Output
| i = 1 j = 1 k = 1 i = 2 j = 1 k = 1 i = 3 j = 1 k = 1 |