![Trending Articles on Technical and Non Technical topics](/images/trending_categories.jpeg)
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What are the local and global scope rules in C language?
Global scope
Global scope specifies that variables defined outside the block are visible up to end of the program.
Example
#include<stdio.h> int c= 30; /* global area */ main (){ int a = 10; printf (“a=%d, c=%d” a,c); fun (); } fun (){ printf (“c=%d”,c); }
Output
a =10, c = 30 c = 30
Local scope
Local scope specifies that variables defined within the block are visible only in that block and invisible outside the block.
Variables declared in a block or function (local) are accessible within that block and does not exist outside it.
Example
#include<stdio.h> main (){ int i = 1;// local scope printf ("%d",i); } { int j=2; //local scope printf("%d",j); } }
Output
1 2
Even if the variables are redeclared in their respective blocks and with the same name, they are considered differently.
Example
#include<stdio.h> main (){ { int i = 1; //variable with same name printf ("%d",i); } { int i =2; // variable with same name printf ("%d",i); } }
Output
1 2
The redeclaration of variables within the blocks bearing the same names as those in the outer block masks the outer block variables while executing the inner blocks.
Example
#include<stdio.h> main (){ int i = 1;{ int i = 2; printf (“%d”,i); } }
Output
2
Variables declared outside the inner blocks are accessible to the nested blocks, provided these variable are not declared within the inner block.
Example
#include<stdio.h> main (){ int i = 1;{ int j = 2; printf ("%d",j); printf ("%d",i); } }
Output
2 1