Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 로컬 정적 변수는 무엇입니까?

<시간/>

지역 정적 변수는 변수가 선언된 곳에서 함수 호출로 수명이 끝나지 않습니다. 완전한 프로그램의 수명까지 연장됩니다. 모든 함수 호출은 로컬 정적 변수의 동일한 복사본을 공유합니다.

이 변수는 함수가 호출된 횟수를 계산하는 데 사용됩니다. 정적 변수의 기본값은 0입니다. 반면에 일반 로컬 범위는 블록 내에 정의된 변수가 해당 블록에서만 표시되고 블록 외부에서 보이지 않도록 지정합니다.

블록 외부에 있는 전역 변수는 프로그램 끝까지 볼 수 있습니다.

예시

다음은 지역 변수에 대한 C 프로그램입니다 -

#include<stdio.h>
main ( ){
   int a=40 ,b=30,sum; //local variables life is within the block
   printf ("sum=%d" ,a+b);
}

출력

위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -

sum=70

예시

다음은 전역 변수에 대한 C 프로그램입니다 -

int c= 30; /* global area */
main ( ){
   int a = 10; //local area
   printf ("a=%d, c=%d", a,c);
   fun ( );
}
fun ( ){
   printf ("c=%d",c);
}

출력

위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -

a =10, c = 30

예시

다음은 로컬 정적 변수에 대한 C 프로그램입니다 -

#include <stdio.h>
void fun(){
   static int x; //default value of static variable is 0
   printf("%d ", a);
   a = a + 1;
}
int main(){
   fun(); //local static variable whose lifetime doesn’t stop with a function
   call, where it is declared.
   fun();
   return 0;
}

출력

위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -

0 1