SlideShare a Scribd company logo
1 of 17
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.
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.
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.
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;
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;
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.
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
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;
• 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.
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
#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);
}
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);
}
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.
#include <stdio.h>
void main()
{
  int ArrayA[3]={1,2,3};
  int *ptr;
  ptr=ArrayA;
  printf("address: %p - array value:%d “,ptr,*ptr);
  ptr++;
  printf("address: %p – array value:%d”,ptr,*ptr);
}
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
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);
}
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);
}

More Related Content

What's hot (20)

Stack organization
Stack organizationStack organization
Stack organization
 
Pointers in c++
Pointers in c++Pointers in c++
Pointers in c++
 
Used of Pointer in C++ Programming
Used of Pointer in C++ ProgrammingUsed of Pointer in C++ Programming
Used of Pointer in C++ Programming
 
pointers
pointerspointers
pointers
 
Pointers in c++
Pointers in c++Pointers in c++
Pointers in c++
 
10. array & pointer
10. array & pointer10. array & pointer
10. array & pointer
 
Pointer in C++
Pointer in C++Pointer in C++
Pointer in C++
 
Pointer in c++ part2
Pointer in c++ part2Pointer in c++ part2
Pointer in c++ part2
 
9 Arrays
9 Arrays9 Arrays
9 Arrays
 
This pointer
This pointerThis pointer
This pointer
 
Pointers in C language
Pointers  in  C languagePointers  in  C language
Pointers in C language
 
What's new in java 8
What's new in java 8What's new in java 8
What's new in java 8
 
Tail Recursion in data structure
Tail Recursion in data structureTail Recursion in data structure
Tail Recursion in data structure
 
Unit 6 pointers
Unit 6   pointersUnit 6   pointers
Unit 6 pointers
 
Program activation records
Program activation recordsProgram activation records
Program activation records
 
Csa stack
Csa stackCsa stack
Csa stack
 
Array of pointer
Array of pointerArray of pointer
Array of pointer
 
Pointers
PointersPointers
Pointers
 
Functional programming java
Functional programming javaFunctional programming java
Functional programming java
 
358 33 powerpoint-slides_9-stacks-queues_chapter-9
358 33 powerpoint-slides_9-stacks-queues_chapter-9358 33 powerpoint-slides_9-stacks-queues_chapter-9
358 33 powerpoint-slides_9-stacks-queues_chapter-9
 

Viewers also liked

New Products Or New Markets
New Products Or New MarketsNew Products Or New Markets
New Products Or New MarketsPico Lantini
 
CarParkFireSafety_UG_20091208
CarParkFireSafety_UG_20091208CarParkFireSafety_UG_20091208
CarParkFireSafety_UG_20091208Bart Merci
 
The Product Manager Should Be CEO
The Product Manager Should Be CEOThe Product Manager Should Be CEO
The Product Manager Should Be CEOPico Lantini
 
UG_20090206_Merci
UG_20090206_MerciUG_20090206_Merci
UG_20090206_MerciBart Merci
 
Bideo-Jolasak
Bideo-JolasakBideo-Jolasak
Bideo-Jolasakolatzucin
 

Viewers also liked (6)

New Products Or New Markets
New Products Or New MarketsNew Products Or New Markets
New Products Or New Markets
 
CarParkFireSafety_UG_20091208
CarParkFireSafety_UG_20091208CarParkFireSafety_UG_20091208
CarParkFireSafety_UG_20091208
 
Session 6
Session 6Session 6
Session 6
 
The Product Manager Should Be CEO
The Product Manager Should Be CEOThe Product Manager Should Be CEO
The Product Manager Should Be CEO
 
UG_20090206_Merci
UG_20090206_MerciUG_20090206_Merci
UG_20090206_Merci
 
Bideo-Jolasak
Bideo-JolasakBideo-Jolasak
Bideo-Jolasak
 

Similar to Session 5

pointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingpointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingRai University
 
PPS-POINTERS.pptx
PPS-POINTERS.pptxPPS-POINTERS.pptx
PPS-POINTERS.pptxsajinis3
 
Mca 1 pic u-5 pointer, structure ,union and intro to file handling
Mca 1 pic u-5 pointer, structure ,union and intro to file handlingMca 1 pic u-5 pointer, structure ,union and intro to file handling
Mca 1 pic u-5 pointer, structure ,union and intro to file handlingRai University
 
btech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.ppt
btech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.pptbtech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.ppt
btech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.pptchintuyadav19
 
Btech 1 pic u-5 pointer, structure ,union and intro to file handling
Btech 1 pic u-5 pointer, structure ,union and intro to file handlingBtech 1 pic u-5 pointer, structure ,union and intro to file handling
Btech 1 pic u-5 pointer, structure ,union and intro to file handlingRai University
 
pointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingpointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingRai University
 
Diploma ii cfpc- u-5.1 pointer, structure ,union and intro to file handling
Diploma ii  cfpc- u-5.1 pointer, structure ,union and intro to file handlingDiploma ii  cfpc- u-5.1 pointer, structure ,union and intro to file handling
Diploma ii cfpc- u-5.1 pointer, structure ,union and intro to file handlingRai University
 
FYBSC(CS)_UNIT-1_Pointers in C.pptx
FYBSC(CS)_UNIT-1_Pointers in C.pptxFYBSC(CS)_UNIT-1_Pointers in C.pptx
FYBSC(CS)_UNIT-1_Pointers in C.pptxsangeeta borde
 
Bsc cs 1 pic u-5 pointer, structure ,union and intro to file handling
Bsc cs 1 pic u-5 pointer, structure ,union and intro to file handlingBsc cs 1 pic u-5 pointer, structure ,union and intro to file handling
Bsc cs 1 pic u-5 pointer, structure ,union and intro to file handlingRai University
 
Advance topics of C language
Advance  topics of C languageAdvance  topics of C language
Advance topics of C languageMehwish Mehmood
 
358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3sumitbardhan
 
Pointers in c - Mohammad Salman
Pointers in c - Mohammad SalmanPointers in c - Mohammad Salman
Pointers in c - Mohammad SalmanMohammadSalman129
 
Pointers and single &multi dimentionalarrays.pptx
Pointers and single &multi dimentionalarrays.pptxPointers and single &multi dimentionalarrays.pptx
Pointers and single &multi dimentionalarrays.pptxRamakrishna Reddy Bijjam
 

Similar to Session 5 (20)

pointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingpointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handling
 
C
CC
C
 
PPS-POINTERS.pptx
PPS-POINTERS.pptxPPS-POINTERS.pptx
PPS-POINTERS.pptx
 
Mca 1 pic u-5 pointer, structure ,union and intro to file handling
Mca 1 pic u-5 pointer, structure ,union and intro to file handlingMca 1 pic u-5 pointer, structure ,union and intro to file handling
Mca 1 pic u-5 pointer, structure ,union and intro to file handling
 
btech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.ppt
btech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.pptbtech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.ppt
btech-1picu-5pointerstructureunionandintrotofilehandling-150122010700-conver.ppt
 
Btech 1 pic u-5 pointer, structure ,union and intro to file handling
Btech 1 pic u-5 pointer, structure ,union and intro to file handlingBtech 1 pic u-5 pointer, structure ,union and intro to file handling
Btech 1 pic u-5 pointer, structure ,union and intro to file handling
 
pointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingpointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handling
 
Diploma ii cfpc- u-5.1 pointer, structure ,union and intro to file handling
Diploma ii  cfpc- u-5.1 pointer, structure ,union and intro to file handlingDiploma ii  cfpc- u-5.1 pointer, structure ,union and intro to file handling
Diploma ii cfpc- u-5.1 pointer, structure ,union and intro to file handling
 
FYBSC(CS)_UNIT-1_Pointers in C.pptx
FYBSC(CS)_UNIT-1_Pointers in C.pptxFYBSC(CS)_UNIT-1_Pointers in C.pptx
FYBSC(CS)_UNIT-1_Pointers in C.pptx
 
Pointers
PointersPointers
Pointers
 
Bsc cs 1 pic u-5 pointer, structure ,union and intro to file handling
Bsc cs 1 pic u-5 pointer, structure ,union and intro to file handlingBsc cs 1 pic u-5 pointer, structure ,union and intro to file handling
Bsc cs 1 pic u-5 pointer, structure ,union and intro to file handling
 
Advanced pointers
Advanced pointersAdvanced pointers
Advanced pointers
 
Advance topics of C language
Advance  topics of C languageAdvance  topics of C language
Advance topics of C language
 
358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3
 
Pointers in c - Mohammad Salman
Pointers in c - Mohammad SalmanPointers in c - Mohammad Salman
Pointers in c - Mohammad Salman
 
l7-pointers.ppt
l7-pointers.pptl7-pointers.ppt
l7-pointers.ppt
 
Lecture2.ppt
Lecture2.pptLecture2.ppt
Lecture2.ppt
 
Pointer.pptx
Pointer.pptxPointer.pptx
Pointer.pptx
 
ch08.ppt
ch08.pptch08.ppt
ch08.ppt
 
Pointers and single &multi dimentionalarrays.pptx
Pointers and single &multi dimentionalarrays.pptxPointers and single &multi dimentionalarrays.pptx
Pointers and single &multi dimentionalarrays.pptx
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
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.
  • 14. #include <stdio.h> void main() { int ArrayA[3]={1,2,3}; int *ptr; ptr=ArrayA; printf("address: %p - array value:%d “,ptr,*ptr); ptr++; printf("address: %p – array value:%d”,ptr,*ptr); }
  • 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); }