Pages

Sunday, August 7, 2011

Definition of variable in c :


 Definition of variable in c:

A variable is named location of data. In other word we can variable is container of data.

    In real world you have used various type containers for specific purpose. For example you have used suitcase to store clothes, match box to store match sticks etc. In the same way variables of different data type is used to store different types of data. For example integer variables are used to store integers char variables is used to store characters etc. On the basis of how many data a variable will store, we can categorize the all c variable in three groups.

(a)Variables which can store only one data at time. Example: integer variables, char variables, pointer variables etc. 

(b)Variables which can store more than one data of similar type at a time. Example: array variables

(c) Variables, which can store more than one value of dissimilar type at a time. Example: structure or union variables.

Properties of variable in c:

    Every variable in c have three most fundamental attributes. They are:

1. Name

2. Value

3. Address

Name of a variable:

 Every variable in c has its own name. A variable without any name is name is not possible in c. Most important properties of variables name are its unique names. Not two variables in c can have same name with same visibility. For example:

#include<stdio.h>
int main(){
    auto int a=5;   //Visibility is within main block
    static int a=10; //Visibility is within main block

/* Two variables of same name */
    printf("%d",a);
    return 0;
}

Output: compilation error

But it is possible that two variable with same name but different visibility. In this case variable name can access only that variable which is more local. In c there is not any way to access global variable if any local variable is present of same name. For example:

(a)

#include<stdio.h>
int a=50; //Visibility is whole the program

int main(){
    int a=10; //Visibility within main block
    printf("%d",a);
    return 0;
}

Output: 10

(b)

#include<stdio.h>

int main(){
    int a=10; //Visibility within main block.
    {
        a+=5; //Accessing outer local variable a.
        int a=20; //Visibility within inner block.
        a+=10; //Accessing inner local variable a.    
        printf(“%d”,a);//Accessing inner local variable a.
    }

    printf(“%d”,a); //Accessing outer local variable a.
    return 0;
}

Output: 30 15

Note: In c any name is called identifier. This name can be variable name, function name, enum constant name, micro constant name, goto label name, any other data type name like structure, union, enum names or typedef name.

Identifier naming rule in c






Identifier naming rule in c


Identifier naming rule in c:


Note: In c any name is called identifier. This name can be variable name, function name, enum constant name, micro constant name, goto label name, any other data type name like structure, union, enum names or typedef name.



Rule 1:  Name of identifier includes alphabets, digit   and underscore.

Valid name: world, addition23, sum_of_number etc.

Invalid name: factorial#, avg value, display*number etc.

Rule 2: First character of any identifier must be either alphabets or underscore.

Valid name:  _calulate, _5,a_, __ etc.

Invalid name: 5_, 10_function, 123 etc.

Rule 3: Name of identifier cannot be any keyword of c program.

Invalid name: interrupt, float, asm, enum etc.

Example:

#include<stdio.h>
int main(){
    int huge=5;
    printf("%d"”,huge);
    return 0;
}





Output: Compilation error

Rule 4: Name of function cannot be global identifier.

Valid name: __TOTAL__, __NAME__  , __TINY__etc.

Invalid name: __TIME__ ,__DATE__ , __FILE__ ,__LINE__ ,__STDC__, __TINY__, __SMALL__, __COMPACT__, __LARGE__, __HUHE__, __CDECL__, __PASCAL__, __MSDOS__, __TURBOC__


For example:

(a)

#include<stdio.h>
int main(){
    double __TIME__=5.5;
    printf("%f",__TIME__);
    return 0;
}





Output: Compilation error

(b)

#include<stdio.h>
int main(){
    double __CPP__=5.5;
    printf("%f",__CPP__);
    return 0;
}





Output: 5.500000

 

Note: It is good practice to not write the variable name in the above format.

Rule 5: Name of identifier cannot be register Pseudo variables

Register Pseudo variables are:

Example:

#include<stdio.h>
int main(){
    long int _AH=5;
    printf("%ld",_AH);
    return 0;
}




Output: Compilation error

Rule 6: Name of identifier cannot be exactly same as of name of function within the scope of the function.

Example:

(q) What will be output of following program?



#include<stdio.h>
float lata();
int main(){
    float lata;
    lata=lata();
    printf("%f",lata);
    return 0;
}

float lata(){
    return 4.5f;
}





Output: Compiler error

Rule 7: Name of identifier is case sensitive i.e. num and Num are two different variables.

Rule 8: Only first 32 characters are significant of   identifier name.

Example:

abcdefghijklmnopqrstuvwxyz123456aaa, 

abcdefghijklmnopqrstuvwxyz123456bbb, 

abcdefghijklmnopqrstuvwxyz123456cad

All three identifier name are same because only first 32 characters has meaning. Rest has not any importance.

Rule 9: Identifier name cannot be exactly same as constant name which have been declared in header file of c and you have included that header files. For example:

(a)

#include<stdio.h>
int main(){
    int M_PI=25;
    printf("%d",M_PI);
    return 0;
}





Output: 25

(b)

#include<math.h>
#include<stdio.h>
int main(){
    int M_PI=25;
    printf("%d",M_PI);
   return 0;
}





Output: Compilation error

Explanation: M_PI is constant name which has been defined in header file math.h hence it cannot be variable in c.

Variable name cannot be exactly same as function name which have been declared any header file of c and we have included that header file in our program and used that function also in the program. For example:

(a)

#include<stdio.h>
int main(){
    int sqrt=25;
    printf("%d",sqrt);
    return 0;
}





Output: 25

(b)

#include<math.h>
#include<stdio.h>
int main(){
    int sqrt=25;
    printf("%d",sqrt);
    return 0;
}





Output: 25

(c)

#include<math.h>
#include<stdio.h>
int main(){
    int sqrt=25;//Invalid variable name
    printf("%f",sqrt(sqrt));
   return 0;
}





Output: Compilation error

Note: Header file stdio.h or conio.h by default it has included every c program .If you have not included that header explicitly then c complier will include that file. To make any program as c program save it as with .c extension.

(d)

int main(){
    int scanf=45;
    printf("%d",scanf);
   return 0;
}





Output: 45

(e)

int main(){
    int scanf=45,b;
    scanf("%d",&b);
    printf("%d %d",scanf,b);
    return 0;
}





Output: Compilation error

Identifier name in c can be exactly same as data type which has been declared in any header of c. For example

(a)

#include<stdio.h>
int main(){
    FILE *ptr;
    int FILE =11;
    printf("%d",FILE);
    return 0;
}





Output: 11

(b)

#include<stdio.h>
#include<time.h>
int main(){
    clock_t clock_t=80
    printf("%d",clock_t);
    return 0;

}





Output: 80