What is a Static Variable in C? |  How to use static Variables?

static variable in c

What is a Static Variable in C? |  How to use static Variables? You will learn how to declare and use static variables in C, the differences between static and global variables, and the advantages and disadvantages of using static variables. Static variables can improve performance and allow shared values in C programs when they are used appropriately.


In C, static variables retain their value even after they are removed from scope. Multiple function calls or sharing a value among multiple functions often require this type of variable. 

Using static variables in C is described in detail in this article, including how to declare them and use them, their differences from global variables, and their benefits and drawbacks.

What is a Static Variable in C?

When defining a variable in C, the “static” keyword specifies that it is a static variable. The program’s data segment stores static variables instead of the stack when they are declared static. After the function or block of code in which the variable was declared has completed execution, its value remains unchanged.

1. Declaration and initialization:

“static” is the keyword used in C to declare static variables.

The data segment stores static variables and their value is retained after the function or block of code where they are declared have completed execution. Static variables can only be accessed within the function or block of code where they are declared.

Source files that are declared contain internal links that permit them to only be accessed from within those files. In the source files where they are declared, they are internal links that can only be accessed from within those files

2. Syntax:

:static int x = 0;

The static integer variable “x” has been declared and initialized to 0 in the following example.

How to Use Static Variables in C?

Static variables can be used in a similar way to global variables, in that they can be accessed from anywhere within a program.

In addition to improving performance, static variables allow multiple functions or blocks of code to share values

Static variables can be used like any other variable in C just by declaring them as static. 


To demonstrate how static variables work in C, here is an example:

#include <studio.h> 

void increment_x


{ static int x = 0; x++; 

printf(“x is %d\n”, x); } 

int main() { increment_x(); increment_x(); increment_x(); return 0; }

As shown in the example, a function called increment_x increments a static integer variable called “x” by 1 at every call. It is possible to call multiple functions at the same time while preserving the static variable “x”.

In C, how do static variables differ from global variables?

There are several differences between static and global variables that you should be aware of as a C programmer:

  1. Scope: 

Variables that are declared as global are accessible anywhere within a program, while variables that are declared as static are only accessible within their respective function or block of code.

  1. Initialization: 

Default values for global variables are 0, whereas default values for static variables are 0. Static variables must be explicitly initialized when they are declared.

  1. Linkage: 

External linkage refers to the fact that global variables can be accessed from other sources in a program. In contrast, static variables are only accessible from within the source file in which they are declared because they have internal linkage.

Benefits of Using Static Variables in C

The use of static variables in C has several benefits:

  • A static variable is faster to access than a variable stored on the stack since it is stored in the data segment. Depending on the situation, this can improve performance.
  • It is useful to share values between multiple functions or blocks of code by using static variables. It can be particularly useful when you want to perform a specific action


  1. Does C allow the modification of static variables?

In C, static variables are modifiable, but their value will remain unchanged between function calls and will not be re-initialized.

  1. What is the best time to use static variables in C?

There are times when you need to retain a value between function calls, but you do not want that value to be visible or accessible outside of a function or block where it is defined. Singleton patterns, which ensure that only one instance of an object or data structure exists, can also be implemented using them.


They are stored in the data segment and have internal linkage, which means they can only be accessed from within tIn C, static variables can preserve values across multiple function calls and can be used to share values between multiple functions or blocks.

They can help improve performance and share values, but they can also be problematic for introducing bugs because of their increased complexity.

To successfully implement static variables in your program, you must carefully evaluate the trade-offs involved.

No Comments

    Leave a Reply