08448380779 Call Girls In Friends Colony Women Seeking Men
Session 5
1. Storage classes
• A variable in C can have any one of the four
storage classes.
1. Automatic variables.
2. External variables.
3. Static variables.
4. Register variables.
2. AUTOMATIC VARIABLES (LOCAL/INTERNAL)
• Automatic variables are declared inside a function
in which they are to be utilized.
• They are created when a function is called and
destroyed automatically when the function is
exited.
• Eg:main()
{
int number;
}
• We may also use the keyword auto to declare
automatic variables explicitly.
3. EXTERNAL VARIABLES
• Variables that are both alive and active throughout
the entire program are known as external variables.
They are also known as global variables.
extern float length = 7.5;
void main()
{
}
function1( )
{
}The keyword extern can be used for explicit
declarations of external variables.
4. STATIC VARIABLES
• As the name suggests, the value of a static
variable persists until the end of the program.
A variable can be declared static using the
keyword static.
• Eg:
• 1) static int x;
• 2) static int y;
5. REGISTER VARIABLES
• We can tell the compiler that a variable
should be kept in one of the machine’s
registers, instead of keeping in the memory.
• Since a register access is much faster than a
memory access, keeping the frequently
accessed variables in the register will lead to
faster execution of programs.
• This is done as follows:
register int count;
6. POINTERS
• A pointer is a variable that represents the location of a
data item, such as a variable or an array element.
• A pointer is a memory address.
• In the simplest term pointer is a nearly integer variable
which stores a memory address of a computer which
may contain other variable or even another pointer.
7. Concept of Address and Pointers
• Memory can be ADDR1
ADDR2
Contents1
conceptualized as a ADDR3
ADDR4
linear set of data ADDR5
ADDR6
locations. *
*
*
• Variables reference the ADDR11 Contents11
contents of a locations *
*
ADDR16 Contents16
• Pointers have a value of
the address of a given
location
8. Pointer Variable
• Declaring a pointer variable is quite similar to
declaring an normal variable all you have to do
is to insert a star '*' operator before it.
• General form of pointer declaration is -
type* name;
For Example
int * variable1;
9. • Say you declare a variable named foo.
int foo;
• Now let's declare another variable of pointer
type
int *foo_ptr = &foo;
foo_ptr is declared as a pointer to int. We have
initialized it to point to foo.
10. Use of & and *
• When is & used?
• When is * used?
• & -- "address operator" which gives or
produces the memory address of a data
variable.
• * -- "dereferencing operator" which provides
the contents in the memory location specified
by a pointer
11. #include <stdio.h>
void main (void)
{
int count = 10, x;
int *int_pointer;
int_pointer = &count;
x = *int_pointer;
printf ("count = %d, x = %dn", count, x);
}
12. Using Pointers in Expressions
#include <stdio.h>
void main ()
{ int i1, i2;
int *p1;
i1 = 5;
p1 = &i1;
i2 = *p1 + 20;
printf ("i1 = %d, i2 = %d, *p1 = %d ", i1, i2, *p1);
}
13. Pointer arithmetic
• Pointers can be added and subtracted.
• However pointer arithmetic is quite meaningless
unless performed on arrays.
• Addition and subtraction are mainly for moving
forward and backward in an array.
15. Pointers and Functions
• Pointers can be used to pass addresses of
variables to called functions, thus allowing the
called function to alter the values stored
there.
• There are two mechanism to call a function
1) Pass by Value
2) Pass By Reference
16. Pass by Value
#include <stdio.h>
void main ( )
{
int a = 5, b = 6; Results:
printf("a=%d b=%dn",a,b) ; a=5 b=6
swap (a, b) ; a=6 b=5
printf("a=%d b=%dn",a,b) ; a=5 b=6
}
void swap(int a, int b)
{
int temp;
temp= a; a= b; b = temp ;
printf ("a=%d b=%dn", a, b);
}
17. Pass by Reference
#include <stdio.h>
void main ( )
{
int a = 5, b = 6;
Results:
printf("a=%d b=%dn",a,b) ;
a=5 b=6
swap (&a, &b) ; a=6 b=5
printf("a=%d b=%dn",a,b) ; a=6 b=5
}
void swap(int *a, int *b)
{
int temp;
temp=*a; *a=*b; *b = temp ;
printf ("a=%d b=%dn", *a, *b);
}