• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » C » Variables » Define the term Scope, Visibility And Lifetime of a Variable
Next →
← Prev

Define the term Scope, Visibility And Lifetime of a Variable

By Dinesh Thakur

An object is recognized by the computer by either its identifier or name. The object may be a variable of basic type or a function, a structure, or a union. The macro names and macro variables do not figure in the scope because macros are replaced by the preprocessor token sequences before the semantic phase of program translation. An identifier may also represent different objects in different scopes.

The scope of a variable is the range of program statements that can access that variable. The lifetime of a variable is the interval of time in which storage is bound to the variable. A variable is visible within its scope and invisible or hidden outside it.

The scope of an identifier is that portion of the program code in which it is visible, that is, it can be used. Four types of scopes are defined in C language. These are as follows:

(i) File scope: If the declaration of an identifier is outside any block or list of parameters, it has file scope.

(ii) Block scope: If the declaration of an identifier is inside a block, it has block scope and the scope ends with the end of the block. A block of statements starts with the left brace ({) and ends with the closing right brace (}).

(iii) Function scope: If the declaration of an identifier is inside a list of parameters in function definition, it has function scope, which ends with the end of function definition.

(iv) Function prototype scope: If the declaration of identifier appears within the list of parameters of a function prototype, which is not part of function definition, the scope of identifier is limited to the function prototype. The scope ends with the end of declaration.

Illustrates the scope of variables.

#include <stdio.h>
int A = 20; // file scope
double B = 8.5; //file scope
int main() {
 const double PI = 3.14159;
 const int S= 6; //Value cannot be changed in the program
 clrscr();
 printf("Values in main:\n A= %d\t B = %f\t PI = %f\t S= %d\n", A, B,PI,S) ;
 {
  int A = 18;
  float B= 15.5;
  printf("Values in outer braces:\n A %d\tB %f\tPI %f\tS= %d\n", A, B, PI, S);
 {
 float B = 25.5;
 enum Number{A = 4, C} ;
 /* if A is redefined in the block as well in enum it will result in compilation error.*/
 printf("Value in inner braces:\n A %d\t B %f\t PI %f\t S %d\t C =%d\n", A,B,PI,S,C);
 }
 printf ("Values in the outer braces: \n A %d\t B %f\t PI %f\t S %d\n", A, B, PI,S);
 }
 printf("Values outside the outer braces:\n A= %d\t B = %f\n", A, B);
 printf("Values in file scope A= %d \t B = %f\n", A, B);
 return 0;
}

In the above output, int A = 20 and double B = 8.5 are declared in file scope. If the identifiers are not redefined in main (), then they are visible with the values 20 and 8.5, respectively. In the middle of the program and in the innermost block {} of the program, A and B have been redefined with A as a member of enumeration constant having value 4 and B having value 25.5. This is shown in the sixth line of the output. The scope of these values is only up to the closing of the block in which these have been redefined. In outer curly brackets, the variables A and B have values 18 and 15.5, respectively (eighth line of the output). But the scope of these values is only up to the closing of the outer block. After the closure of inner and outer braces, the values of A and B are again 20 and 8.5, respectively. It is found from the last two lines of the output that the values of A and B remain same as assigned before the main(), while in-between, the values are different. The variables PI and S do not change their values throughout the program because these have been declared as constant. The variables defined in a function have scope only up to the function.

You’ll also like:

  1. Variable’s Scope and Lifetime of a Variable
  2. What is Scope of Variable
  3. Scope of a Variable in Java
  4. Define the term Validation. When is it appropriate to do validation
  5. Difference Between Declaring a Variable and Defining a Variable
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

C Programming

C Programming Tutorials

  • C - History
  • C - Anatomy
  • C - Constants
  • C - Identifiers
  • C - Data Types
  • C - Libraries File
  • C - Header Files
  • C - Basic Language
  • C - Data Types Sizes
  • C - Header Files Importance
  • C - Escape Sequences
  • C - Main() Purpose
  • C - Program Procedure
  • C - Control Statements
  • C - Enumeration Constant
  • C - Add numbers
  • C - Return Statement
  • C - Avoid Goto
  • C - Command Line Arguments
  • C - Switch Case
  • C - Switch Case Limitations
  • C - getchar() and putchar()
  • C - Iteration Statements
  • C - Pass by Value and Reference
  • C - Structures and Unions
  • C - Structure
  • C - Dynamic Memory
  • C - Fgets and Fputs Functions
  • C - Gets() and Puts() Functions
  • C - Armstrong Number
  • C - Storage Classes
  • C - Fibonacci Series
  • C - Precision Setting
  • C - const Parameters

C - Variable & It's Type

  • C - Variables
  • C - Variable Lifetime
  • C - Static Variable
  • C - Register Variable
  • C - Global Variables
  • C - Auto Variables
  • C - Local Variables

C - Operator & Expressions

  • C - Operator
  • C - Boolean Operators
  • C - Bitwise Operator
  • C - Arithmetic Operators
  • C - Modulus Operator
  • C - Ternary Operator
  • C - Expressions
  • C - Arithmetic Expressions

C - Array

  • C - Arrays
  • C - Array Types
  • C - Array Characteristics
  • C - Static Arrays
  • C - Global Arrays
  • C - 3D Arrays
  • C - Dynamic Arrays
  • C - Pointer to 3D Arrays
  • C - Array Elements Hold
  • C - Arrays as Function Parameters
  • C - Accessing Matrix Elements
  • C - File Handling
  • C - Matrix Multiplication
  • C - Dynamic Memory Allocation

C - Searching & Sorting

  • C - Data Structures
  • C - Linear Search
  • C - Bubble Sort
  • C - Merge Sort
  • C - Linked List
  • C - Insertion Sort
  • C - Binary Search
  • C - Selection Sort
  • C - Quick Sort

C - Functions

  • C - Functions
  • C - Functions Advantages
  • C - Void Functions
  • C - Function Call
  • C - Default Return Value
  • C - String functions

C - Pointer

  • C - Pointers
  • C - Type Casting Of Pointers
  • C - Pointer Advantages
  • C - Pointers Initialization
  • C - Vectors and Pointers

C - Differences

  • C - C Vs C++
  • C - Formal Args. Vs Actual Args.
  • C - Keywords Vs Identifiers
  • C - Strings Vs Character Arrays
  • C - Address Vs Dereference Operator
  • C - Goto Vs longjmp
  • C - Declaring Vs Defining Variable
  • C - String Vs Array
  • C - Call by Value Vs Reference
  • C - Structure Vs Union
  • C - For Vs While loops
  • C - Compiler Vs Interpreter

C - Programs

  • C Program Standard Deviation
  • C Program Calculate Tax
  • C Program Sum Series
  • C Program Merge Arrays
  • C Program Euclid’s Algorithm
  • C Program Print Weekdays
  • C Program Sum of Digits
  • C Program Print a list
  • C Program Print Pythagorean
  • C Program Quiz program
  • C Program Display Table
  • C Program Print Comma-Separated
  • C Program Prints Prime Numbers
  • C Program for Print Integer
  • C Program Count Number
  • C Program Print Color Name
  • C Program Print Odd Numbers
  • C Program Calculate area
  • C Program for a Menu
  • C Program Add Two Vectors
  • C Program Array Addresses
  • C Program Division by Zero Error
  • C Program Compare two Dates
  • C Program Tower of Hanoi
  • C Program return 3 Numbers
  • C Program for Prime Numbers
  • C Program for Factorial
  • C Program for Palindrome

Other Links

  • C Programming - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW