Variables in C
Variables in C
A variable in C language is the name associated with some memory location to store data of
different types. There are many types of variables in C depending on the scope, storage class,
lifetime, type of data they store, etc. A variable is the basic building block of a C program
that can be used in expressions as a substitute in place of the value it stores.
What is a variable in C?
A variable in C is a memory location with some name that helps store some form of data
and retrieves it when required. We can store different types of data in the variable and reuse
the same variable for storing some other data any number of times.
They can be viewed as the names given to the memory location so that we can refer to it
without having to memorize the memory address. The size of the variable depends upon the
data type it stores.
C Variable Syntax
The syntax to declare a variable in C specifies the name and the type of the variable.
Here,
Example
Note: C is a strongly typed language so all the variables types must be specified before using
them.
Variable Declaration
Variable Definition
Variable Initialization
1. C Variable Declaration
Variable declaration in C tells the compiler about the existence of the variable with the given
name and data type.When the variable is declared compiler automatically allocates the memory
for it.
2. C Variable Definition
In the definition of a C variable, the compiler allocates some memory and some value to it. A
defined variable will contain some random garbage value till it is not initialized.
Example
Note: Most of the modern C compilers declare and define the variable in single step. Although
we can declare a variable in C by using extern keyword, it is not required in most of the
cases. To know more about variable declaration and definition, click here.
3. C Variable Initialization
Initialization of a variable is the process where the user assigns some meaningful value to the
variable.
Example
int var; // variable definitionvar = 10; // initialization orint var = 10; // variable
declaration and definition
#include <stdio.h>
int main()
int defined_var;
// initialization
defined_var = 12;
return 0;
Output
Defined_var: 0
Value of ini_var: 25
You can assign any name to the variable as long as it follows the following rules:
A variable name must start with an alphabet or an underscore only. It cannot start with a
digit.
No whitespace is allowed within the variable name.
C Variable Types
Local Variables
Global Variables
Static Variables
Automatic Variables
Extern Variables
Register Variables
1. Local Variables in C
A Local variable in C is a variable that is declared inside a function or a block of code. Its
scope is limited to the block or function in which it is declared.
// function.
#include <stdio.h>
void function()
printf("%d", x);
Output 10
In the above code, x can be used only in the scope of function(). Using it in the main function
will give an error.
2. Global Variables in C
A Global variable in C is a variable that is declared outside the function or a block of code.
Its scope is the whole program i.e. we can access the global variable anywhere in the C
program after it is declared.
#include <stdio.h>
int main()
function1();
function2();
return 0;
Output
Function 1: 20
Function 2: 20
In the above code, both functions can use the global variable as global variables are accessible
by all the functions.
Note: When we have same name for local and global variable, local variable will be given
preference over the global variable by the compiler.
For accessing global variable in this case, we can use the method mention here.
3. Static Variables in C
A static variable in C is a variable that is defined using the static keyword. It can be defined
only once in a C program and its scope depends upon the region where it is declared (can be
global or local).
As its lifetime is till the end of the program, it can retain its value for multiple function calls
as shown in the example.
#include <stdio.h>
void function()
x = x + 10;
y = y + 10;
int main()
{
printf("First Call\n");
function();
printf("Second Call\n");
function();
printf("Third Call\n")
function();
return 0;
Output
First Call
Local: 30
Static: 40
Second Call
Local: 30
Static: 50
Third Call
Local: 30
Static: 60
In the above example, we can see that the local variable will always print the same value
whenever the function will be called whereas the static variable will print the incremented value
in each function call.
Note: Storage Classes in C is the concept that helps us to determine the scope, lifetime,
memory location, and default value (initial value) of a variable.
4. Automatic Variable in C
All the local variables are automatic variables by default. They are also known as auto variables.
Their scope is local and their lifetime is till the end of the block. If we need, we can use the
auto keyword to define the auto variables.
#include <stdio.h>
void function()
int main()
function();
return 0;
Output
Auto Variable: 20
In the above example, both x and y are automatic variables. The only difference is that
variable y is explicitly declared with the auto keyword.
5. External Variables in C
External variables in C can be shared between multiple C files. We can declare an external
variable using the extern keyword.
6. Register Variables in C
Register variables in C are those variables that are stored in the CPU register instead of the
conventional storage place like RAM. Their scope is local and exists till the end of the block
or a function.
// variable
#include <stdio.h>
int main()
// register variable
return 0;
Output
NOTE: We cannot get the address of the register variable using addressof (&) operator because
they are stored in the CPU register. The compiler will throw an error if we try to get the
address of register variable.
Constant Variable in C
Till now we have only seen the variables whose values can be modified any number of times.
But C language also provides us a way to make the value of a variable immutable. We can do
that by defining the variable as constant.
Note: We have to always initialize the const variable at the definition as we cannot modify its
value after defining.
Example of Const Variable in C
#include <stdio.h>
int main()
// variable
int not_constant;
// constant variable;
// changing values
not_constant = 40;
constant = 22;
return 0;
Output
Ans:
In variable declaration, only the name and type of the variable is specified but no memory is
allocated to the variable.
Ans:
The scope of a variable is the region in which the variable exists and it is valid to perform
operations on it. Beyond the scope of the variable, we cannot access it and it is said to be
out of scope.