variable in c

A variable is a name of memory location. It is used to hold data. Its value can be changed and it can be reused many times. It is a way to represent memory location through meaningful name so that it can be easily identified. Let's see the syntax to declare a variable:
type variable_list;
The example of declaring variable is given below:
  • int a;
  • float b;
  • char c;
  • Here, a, b, c are variables and int,float,char are data types. We can also provide values while declaring the variables as given below:
    int a=12, b=20;  //declaring 2 variable of integer type  
    float f = 30.8;  
    char c = 'D';
    Rules for defining variables. A variable can have alphabets, digits and underscore. A variable name can start with alphabet and underscore only. It can't start with digit. No white space is allowed within variable name. A variable name must not be any reserved word or keyword e.g. for, return etc.

    valid variable names
    int a;  
    int  _ab;  
    int a30;
    invalid variable names
    int 2;  
    int a b;  
    int long;

    Types of variables in c
    There are many types of variables in c:

  • Local Variable
  • Global Variable
  • Static Variable
  • Automatic Variable
  • External Variable
  • Local Variable
  • A variable that is declared inside the function or block is called local variable. It must be declared at the start of the block.
    void function1(){  
    int x = 12; //local variable  
    You must have to initialize the local variable before it is used.
  • Global Variable
  • A variable that is declared outside the function or block is called global variable. Any function can change the value of the global variable. It is available to all the functions. It must be declared before the start of the block.
    int value = 20;  //global variable  
    void function1(){  
    int x = 12;  //local variable  
  • Static Variable
  • A variable that is declared with static keyword is called static variable.
    void function1(){  
    int x = 12;   //local variable  
    static int = 12;  //static variable  
    x = x+1;  
    y = y+1;  
    It retains its value between multiple function calls. If you call this function many times, local variable will print the same value for each function call e.g, 13,13,13 and so on. But static variable will print the incremented value in each function call e.g. 13, 14, 15 and so on.
  • Automatic Variable
  • All variables in C that is declared inside the block, are automatic variables by default. By we can explicitly declare automatic variable using auto keyword.
    void main(){  
    int x = 12;  //local variable (also automatic)  
    auto int y = 30; //automatic variable  
  • External Variable
  • We can share a variable in multiple C source files by using external variable. To declare a external variable, you need to use extern keyword.
    extern int x = 12; //external variable (also global)
    #include "myfile.h"  
    #include <stdio.h>  
    void printValue(){  
    printf("Global variable: %d", global_variable);