- Storage Classes Variables का scope और lifetime तय करता है |
- Storage Classes Variables को कहाँ पर store करके रखे ये बताता है |
for eg. CPU, Register
C++ Programming में Storage Classes के पांच प्रकार है |
- Automatic Storage Class
- External Storage Class
- Register Storage Class
- 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







No comments: