A variable is a name of memory location. It is used to store data. Its value can be changed and it can be reused many times.
It is a way to represent memory location through symbol 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=10,b=20;//declaring 2 variable of integer type
- float f=20.8;
- char c='A';
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=10;//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 at the start of the block.
- int value=20;//global variable
- void function1(){
- int x=10;//local variable
- }
Static Variable
A variable that is declared with static keyword is called static variable.
It retains its value between multiple function calls.
- void function1(){
- int x=10;//local variable
- static int y=10;//static variable
- x=x+1;
- y=y+1;
- printf("%d,%d",x,y);
- }
If you call this function many times, local variable will print the same value for each function call e.g, 11,11,11 and so on. But static variable will print the incremented value in each function call e.g. 11, 12, 13 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=10;//local variable (also automatic)
- auto int y=20;//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.
myfile.h
- extern int x=10;//external variable (also global)
program1.c
- #include "myfile.h"
- #include <stdio.h>
- void printValue(){
- printf("Global variable: %d", global_variable);
- }
A C constant is usually just the written version of a number. For example 1, 0, 5.73, 12.5e9. We can specify our constants in octal or hexadecimal, or force them to be treated as long integers.
- Octal constants are written with a leading zero - 015.
- Hexadecimal constants are written with a leading 0x - 0x1ae.
- Long constants are written with a trailing L - 890L.
In addition, a required bit pattern can be specified using its octal equivalent.'\n' newline '\t' tab '\\' backslash '\'' single quote '\0' null ( Usedautomatically to terminate character string )
'\044' produces bit pattern 00100100.
Character constants are rarely used, since string constants are more convenient. A string constant is surrounded by double quotes eg "Brian and Dennis". The string is actually stored as an array of characters. The null character '\0' is automatically placed at the end of such a string to act as a string terminator.
A character is a different type to a single character string. This is important poing to note.
Defining Constants
ANSI C allows you to declare constants. When you declare a constant it is a bit like a variable declaration except the value cannot be changed.
The const keyword is to declare a constant, as shown below:
Note:int const a = 1; const int a =2;
- You can declare the const before or after the type. Choose one an stick to it.
- It is usual to initialise a const with a value as it cannot get a value any other way.
Here TRUE, FALSE and NAME_SIZE are constant#define TRUE 1 #define FALSE 0 #define NAME_SIZE 20
You frequently see const declaration in function parameters. This says simply that the function is not going to change the value of the parameter.
The following function definition used concepts we have not met (see chapters on functions, strings, pointers, and standard libraries) but for completenes of this section it is is included here:
void strcpy(char *buffer, char const *string)
Data Types in C
A data type specifies the type of data that a variable can store such as integer, floating, character etc.
There are 4 types of data types in C language.
Types Data Types Basic Data Type : int, char, float, double Derived Data Type : array, pointer, structure, union Enumeration Data Type: enum Void Data Type : void Basic Data Types
The basic data types are integer-based and floating-point based. C language supports both signed and unsigned literals.
The memory size of basic data types may change according to 32 or 64 bit operating system.
Let's see the basic data types. It size is given according to 32 bit OS.
Data Types Memory Size Range char 1 byte −128 to 127 signed char 1 byte −128 to 127 unsigned char 1 byte 0 to 127 short 2 byte −32,768 to 32,767 signed short 2 byte −32,768 to 32,767 unsigned short 2 byte 0 to 32,767 int 2 byte −32,768 to 32,767 signed int 2 byte −32,768 to 32,767 unsigned int 2 byte 0 to 32,767 short int 2 byte −32,768 to 32,767 signed short int 2 byte −32,768 to 32,767 unsigned short int 2 byte 0 to 32,767 long int 4 byte signed long int 4 byte unsigned long int 4 byte float 4 byte double 8 byte long double 10 byte
Source : javatpoind.com