>  기사  >  백엔드 개발  >  C와 C의 정적, 자동, 전역 및 로컬 변수의 차이점은 무엇입니까?

C와 C의 정적, 자동, 전역 및 로컬 변수의 차이점은 무엇입니까?

DDD
DDD원래의
2024-11-02 17:34:02947검색

What's the Difference Between Static, Auto, Global, and Local Variables in C and C  ?

C 및 C의 정적, 자동, 전역 및 지역 변수 이해

C 및 C에서 변수를 사용할 때 다음 사항이 중요합니다. 정적, 자동, 전역 및 지역 변수 간의 미묘한 차이를 파악하세요. 이러한 구별은 프로그램에서의 접근성과 수명 모두에 관련됩니다.

로컬 변수

때때로 "블록 범위" 변수라고도 하는 로컬 변수는 선언된 코드 블록입니다. 이러한 변수는 블록이 들어갈 때만 존재하고 블록이 종료되면 더 이상 존재하지 않습니다. 이 개념 설명:

void f() {
    int i; // Local variable
    i = 1; // Accessible within f()
}

전역 변수

전역 변수는 "파일 범위"(C) 또는 "네임스페이스 범위"(C)를 갖습니다. 여기에 표시된 대로 선언 후 프로그램의 어느 지점에서나 액세스할 수 있습니다.

int i; // Global variable
void f() {
    i = 1; // Accessible anywhere
}

자동 변수

자동 저장 기간으로 알려진 자동 변수 " 변수는 로컬에 상주합니다. 그들의 존재는 그들이 거주하는 블록의 지속 시간으로 제한됩니다. 블록을 빠져나오면 이 변수는 소멸되었다가 블록에 다시 들어갈 때 다시 존재하게 됩니다.

for (int i = 0; i < 5; ++i) {
    int n = 0; // Automatic variable
    printf("%d ", ++n); // Value of n is reset to 0 each iteration
}

정적 변수

반면 정적 변수 프로그램 내에서 연장된 수명("정적 저장 기간"이라고 함)을 즐겨보세요. 제어가 해당 범위를 벗어나더라도 해당 값은 계속 유지됩니다.

for (int i = 0; i < 5; ++i) {
    static int n = 0; // Static variable
    printf("%d ", ++n); // Value of n persists across iterations
}

결론적으로 이러한 변수 유형 간의 차이점을 파악하면 C와 C에서 보다 효율적이고 대상이 지정된 프로그래밍이 가능해집니다. 범위와 수명을 이해하면 개발자는 특정 요구 사항에 적합한 변수 유형을 선택할 수 있습니다.

위 내용은 C와 C의 정적, 자동, 전역 및 로컬 변수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.