ASK A QUESTION

    Storage Classes in Hindi

in Hindi - Storage Classes



  • Storage Classes Variables का scope और lifetime तय करता है |
  • Storage Classes Variables को कहाँ पर store करके रखे ये बताता है |
    for eg. CPU, Register
C++ Programming में Storage Classes के पांच प्रकार है |
  1. Automatic Storage Class
  2. External Storage Class
  3. Register Storage Class
  4. Static Storage Class

1. Automatic Storage Class

  • Automatic Storage Class में 'auto' keyword का इस्तेमाल करते है |
  • ये Normal Variable की तरह ही होता है |
  • ये एक Local Variable है |
  • इनकी visibility या scope function के अंदर होता है | बाहर वो destroyed हो जाते है |
  • इनकी default value 'garbage' होती है |
Syntax for Automatic Storage Class
auto data_type variable_name = value(optional);
for eg.
int a ; // and 

auto int a ; // both are same

Source Code :
#include <iostream.h>
using namespace std;

int main(){

auto int a;
auto int b = 5;

    cout<<"Value of a : "<<a<<endl;
    cout<<"Value of b : "<<b;

return 0;
}
Output :
Value of a : 6946708 // garbage value
Value of b : 5

2. External Storage Class

  • External Storage Class में 'extern' keyword का इस्तेमाल करते है |
  • External Storage Class के variables का scope Global होता है
  • Global Variable के कारण इनका इस्तेमाल Program में extern के साथ कहा पर भी और किसी भी function के अंदर होता है |
  • इनकी default value '0' होती है |
Syntax for External Storage Class
extern data_type variable_name = value(optional);
for eg.
extern int a ;

Source Code :
#include <iostream.h>
using namespace std;

int num =  5 ;

void func();   // function declaration

int main(){

extern int num ;
    cout<<"Value of num : "<<num<<endl;
func();   // function calling

return 0;
}

void func(){     // function definition

extern int num ;
    cout<<"Value of num : "<<num;
}
Output :
Value of num : 5
Value of num : 5

3. Register Storage Class

  • Register Storage Class में 'register' keyword का इस्तेमाल करते है |
  • Register Storage Class के variables का scope Local होता है
  • Local Variable के कारण इनका इस्तेमाल Program में जिस function के अंदर इनको declare या initialize किया है उसी function के अंदर visible रहता है |
  • Register Storage Variables Computer के Register पर store होते है |
  • Register Storage Class की Memory 'Limited' होती है | अगर Register की Memory ख़त्म हो जाए तो वो CPU Memory पर store होते है |
  • Register Variables का कोई address(&) नहीं होता |
  • इनकी default value 'garbage' होती है |
Syntax for Register Storage Class
register data_type variable_name = value(optional);
for eg.
register int a ;

Source Code :
#include <iostream.h>
using namespace std;

int main(){

register int num = 5 ;

    cout<<"Value of num : "<<num;
    // printf("Value of num : %d\n",&num);

return 0;
}
Output :
Value of num : 5

4. Static Storage Class

  • Static Storage Class में 'static' keyword का इस्तेमाल करते है |
  • Static Storage Class के Variables का scope Local और Global ये दोनों होता है |
  • इनकी default value '0' होती है |
Syntax for Static Storage Class
static data_type variable_name = value(optional);
for eg.
static int a ;

Code Description

निचे दिए हुए General File में int num = 1 ; ये value initialize की है और ये variable एक function में मतलब Local Variable लिया है | function1 इस function को for loop से repeat किया है | ये variable सामान्य होने के कारण इसकी value control के बाहर जाने के बाद नष्ट हो जाती है , इसीलिए इस variable की value increase नहीं होती बल्कि ये बार-बार initial होने से ये initial value को ही for loop के द्वारा बार-बार output में print करता है |

निचे दिए हुए Static File में static int num = 1 ; ये value initialize की है | इस program में General File के मुकाबले सिर्फ static keyword का use किया है | Static variables बिलकुल सामान्य variables के उलट प्रक्रिया करता है | Static Local variables की value control के बाहर जाने के बाद destroy नहीं होती | Static Local variables की value एक बार ही initialize होती है | Static Variables अपने control के बाहर जाने के बाद intialize हुई value को नष्ट नहीं करता, इसीलिए Static File में बार-बार initial value print नहीं होती |

General File :
#include <iostream.h>
using namespace std;

func(){
int num = 1;
	cout<<num;
	num++;
}
int main()
{
int i;

for(i=0; i<10; i++){
	cout<<endl;
func();
}
return 0;
}
Output :
1
1
1
1
1
1
1
1
1
1

Static File :
#include <iostream.h>
using namespace std;

func(){
static int num = 1;
	cout<<num;
	num++;
}
int main()
{
int i;

for(i=0; i<10; i++){
	cout<<endl;
func();
}
return 0;
}
Output :
1
2
3
4
5
6
7
8
9
10