స్టాటిక్ {డేటా రకం} {వేరియబుల్ పేరు}
స్టాటిక్ స్థానిక వేరియబుల్స్
ఫంక్షన్లో వేరియబుల్ స్టాటిక్గా ఉన్నప్పుడు, వేరియబుల్ ఫంక్షన్ కాల్ల మధ్య దాని విలువను కాపాడుతుంది.
// ఉదాహరణ 1..సి
#చేర్చండి
intసరదా 1()
{
intలెక్క=0;
లెక్క++;
తిరిగిలెక్క;
}
intసరదా 2()
{
స్టాటిక్ intలెక్క=0;
లెక్క++;
తిరిగిలెక్క;
}
intప్రధాన()
{
printf ('ఫన్ 1 మొదటి కాల్ రిటర్న్స్: %d n',సరదా 1());
printf ('ఫన్ 1 2 వ కాల్ రిటర్న్స్: %d n n',సరదా 1());
printf ('ఫన్ 2 1 వ కాల్ రిటర్న్స్: %d n',సరదా 2());
printf ('ఫన్ 2 2 వ కాల్ రిటర్న్స్: %d n',సరదా 2());
తిరిగి 0;
}
ఉదాహరణ 1.c లో, మాకు రెండు విధులు ఉన్నాయి: సరదా 1 () మరియు సరదా 2 () . లో సరదా 1 () , మేము ఒక వేరియబుల్ని (కౌంట్) డిక్లేర్ చేసి, దానిని 0. కి ప్రారంభిస్తాము, అప్పుడు, కౌంట్ వేరియబుల్ను పెంచి, ఫలిత విలువను తిరిగి ఇస్తాము. ఉపయోగించి ప్రధాన () , మేము పిలుస్తాము సరదా 1 () రెండుసార్లు, మరియు ప్రతిసారి, 1 విలువ తిరిగి ఇవ్వబడుతుంది ఎందుకంటే కాల్ చేసినప్పుడు కౌంట్ వేరియబుల్ క్లియర్ చేయబడుతుంది సరదా 1 () పూర్తయింది. లో సరదా 2 () మేము కౌంట్ వేరియబుల్ను స్టాటిక్ వేరియబుల్గా ప్రకటించాము. అందువలన, దాని విలువ భద్రపరచబడింది. ఉపయోగించి ప్రధాన () , మేము పిలుస్తాము సరదా 2 () రెండుసార్లు: మొదటిసారి, 1 విలువ తిరిగి ఇవ్వబడింది, మరియు రెండవసారి, 2 విలువ తిరిగి ఇవ్వబడుతుంది.
స్టాటిక్ గ్లోబల్ వేరియబుల్స్
ఒక స్టాటిక్ గ్లోబల్ వేరియబుల్ ఇతర గ్లోబల్ వేరియబుల్స్ మాదిరిగానే ప్రవర్తిస్తుంది, కానీ అది మరొక సి ప్రోగ్రామ్ నుండి యాక్సెస్ చేయబడదు.
స్థిరమైన విధులు
C లో, విధులు అప్రమేయంగా ప్రపంచవ్యాప్తంగా ఉంటాయి. అయితే, మేము స్టాటిక్ ఫంక్షన్ని ప్రకటిస్తే, ఫంక్షన్ స్థానికంగా ఉంటుంది మరియు మరొక సి ప్రోగ్రామ్ నుండి యాక్సెస్ చేయబడదు.
స్టాటిక్ వేరియబుల్స్ ప్రారంభించడం
స్టాటిక్ వేరియబుల్ స్పష్టంగా ప్రారంభించబడకపోతే, అది 0 గా ప్రారంభించబడుతుంది.
// ఉదాహరణ 2.సి
#చేర్చండి
intప్రధాన()
{
స్టాటిక్ inti;
printf ('I యొక్క విలువ: %d n',i);
తిరిగి 0;
}
Example2.c లో, మేము ప్రారంభించని స్టాటిక్ వేరియబుల్ i ని ప్రకటించాము. అయితే, వేరియబుల్ స్థిరంగా ఉన్నందున, అది స్వయంచాలకంగా 0 కి ప్రారంభించబడుతుంది.
స్టాటిక్ వేరియబుల్ ఒక స్థిరమైన సాహిత్యంతో తప్పనిసరిగా ప్రారంభించబడాలని గమనించడం ముఖ్యం; స్టాటిక్ వేరియబుల్ను ప్రారంభించడానికి మేము ఫంక్షన్ రిటర్న్ విలువను ఉపయోగించలేము.
// ఉదాహరణ 3. సి#చేర్చండి
intసరదా 1()
{
తిరిగి 5;
}
intప్రధాన()
{
స్టాటిక్ inti=సరదా 1();
printf ('I యొక్క విలువ: %d n',i);
తిరిగి 0;
}
Example3.c లో, మేము రిటర్న్ విలువను ఉపయోగించి స్టాటిక్ వేరియబుల్ను ప్రారంభించడానికి ప్రయత్నిస్తాము సరదా 1 () . అయితే, మీరు చూడగలిగినట్లుగా, కోడ్ కంపైల్ చేయబడినప్పుడు లోపం తిరిగి వస్తుంది.
సారాంశం
స్టాటిక్ వేరియబుల్ యొక్క జీవితకాలం మరియు ప్రోగ్రామ్ యొక్క జీవితకాలం సమానంగా ఉంటాయి.
స్టాటిక్ వేరియబుల్ ప్రారంభించబడకపోతే, అది 0 డిఫాల్ట్ విలువను తీసుకుంటుంది.
గ్లోబల్ స్టాటిక్ వేరియబుల్ లేదా స్టాటిక్ ఫంక్షన్ నిర్వచించబడిన ప్రోగ్రామ్ కాకుండా వేరే ప్రోగ్రామ్ నుండి యాక్సెస్ చేయబడదు.