The Programming Language-1 (6622) tutorial and Problem solved video tutorial, SEO tutorial for Online Earning.

Variables + data type with input output operation in C

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:


  1. type variable_list;  
The example of declaring variable is given below:
  1. int a;  
  2. float b;  
  3. 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:
  1. int a=10,b=20;//declaring 2 variable of integer type  
  2. float f=20.8;  
  3. char c='A';  
There are many types of variables in c:
  1. local variable
  2. global variable
  3. static variable
  4. automatic variable
  5. 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.
  1. void function1(){  
  2. int x=10;//local variable  
  3. }  
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.
  1. int value=20;//global variable  
  2. void function1(){  
  3. int x=10;//local variable  
  4. }  

Static Variable

A variable that is declared with static keyword is called static variable.
It retains its value between multiple function calls.
  1. void function1(){  
  2. int x=10;//local variable  
  3. static int y=10;//static variable  
  4. x=x+1;  
  5. y=y+1;  
  6. printf("%d,%d",x,y);  
  7. }  
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.
  1. void main(){  
  2. int x=10;//local variable (also automatic)  
  3. auto int y=20;//automatic variable  
  4. }  

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
  1. extern int x=10;//external variable (also global)  
program1.c
  1. #include "myfile.h"  
  2. #include <stdio.h>  
  3. void printValue(){  
  4.     printf("Global variable: %d", global_variable);  
  5. }  


  6. 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.
    Character constants are usually just the character enclosed in single quotes; 'a', 'b', 'c'. Some characters can't be represented in this way, so we use a 2 character sequence as follows.
    '\n' newline
    '\t' tab
    '\\' backslash
    '\'' single quote
    '\0' null ( Usedautomatically to terminate character string )
    
    In addition, a required bit pattern can be specified using its octal equivalent.
    '\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:
    int const a = 1;
    const int a =2;
    
    Note:
    • 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.
    The preprocessor #define is another more flexible (see Preprocessor Chapters) method to define constants in a program.
    #define TRUE  1
    #define FALSE  0
    #define NAME_SIZE 20
    
    Here TRUE, FALSE and NAME_SIZE are constant
    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.

    TypesData 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 TypesMemory SizeRange
    char1 byte−128 to 127
    signed char1 byte−128 to 127
    unsigned char1 byte0 to 127
    short2 byte−32,768 to 32,767
    signed short2 byte−32,768 to 32,767
    unsigned short2 byte0 to 32,767
    int2 byte−32,768 to 32,767
    signed int2 byte−32,768 to 32,767
    unsigned int2 byte0 to 32,767
    short int2 byte−32,768 to 32,767
    signed short int2 byte−32,768 to 32,767
    unsigned short int2 byte0 to 32,767
    long int4 byte
    signed long int4 byte
    unsigned long int4 byte
    float4 byte
    double8 byte
    long double10 byte






Source : javatpoind.com