추천, 2024

에디터의 선택

로컬 변수와 글로벌 변수의 차이점

이전에 논의했듯이, 변수는 메모리 위치에 주어진 이름이며 사용되기 전에 선언되어야합니다. C에서 모든 변수는 프로그램 시작시 선언됩니다. C ++에서 변수는 명령어에서 사용되기 전에 언제든지 선언 할 수 있습니다.

변수는 'local'변수와 'global'변수로 더 분류되며, 이는 우리 논의의 주요 주제입니다. 여기에서 지역 변수와 전역 변수의 주된 차이점은 지역 변수가 함수 블록 내에서 선언된다는 것입니다. 여기서 전역 변수는 프로그램의 함수 외부에서 선언됩니다.

비교 차트와 함께 지역 변수와 전역 변수 간의 차이점에 대해 더 공부해 봅시다.

비교 차트 :

비교의 근거지역 변수전역 변수
선언변수는 함수 내에서 선언됩니다.변수는 함수 밖에서 선언됩니다.
범위선언 된 함수 내에서.프로그램 전체에서.
접속하다선언 된 함수 내에서 명령문에 의해서만 액세스됩니다.전체 프로그램의 모든 내용에 액세스 할 수 있습니다.
생명기능 블록이 입력되고 종료 될 때 파괴 될 때 생성됩니다.프로그램이 실행되는 전체 시간 동안 존재합니다.
저장지역 변수는 지정하지 않으면 스택에 저장됩니다.컴파일러가 결정한 고정 위치에 저장됩니다.

지역 변수의 정의

지역 변수는 항상 함수 블록 내에서 선언됩니다. C에서 지역 변수는 코드 블록의 시작 부분에 선언됩니다. C ++에서는 사용하기 전에 코드 블록의 어디에서나 선언 할 수 있습니다. 로컬 변수는 로컬 변수가 선언 된 함수 내에 작성된 명령문에 의해서만 액세스 할 수 있습니다. 그들은 동일한 프로그램의 다른 기능으로 액세스 할 수 없다는 의미에서 안전합니다.

지역 변수는 함수의 블록이 실행될 때까지 존재하며, 따라서 실행이 블록을 빠져 나면 파괴됩니다. 지역 변수는 실행이 선언 된 블록을 떠난 즉시 내용을 잃어 버립니다.

그 이유는 로컬 변수가 특수 저장 영역이 지정되지 않으면 스택에 저장되기 때문입니다. 스택은 본질적으로 동적이며 메모리 위치가 변경되면 함수 블록이 존재하는 즉시 로컬 변수가 값을 보유하지 않는 이유가됩니다.

노트 :
그러나 'static'한정자를 사용하여 지역 변수의 값을 유지하는 방법이 있습니다.

전역 변수의 정의

전역 변수는 프로그램에있는 모든 함수 밖에서 선언됩니다. 지역 변수와 달리 전역 변수는 프로그램에있는 모든 함수를 통해 액세스 할 수 있습니다. 전역 변수는 그 값이 프로그램에있는 함수에 의해 변경 될 수 있기 때문에 그다지 신뢰할 수 없습니다.

전역 변수는 전체 프로그램이 완전히 실행될 때까지 존재합니다. 전역 변수는 프로그램이 실행될 때까지 값을 유지합니다. 이유는 컴파일러가 결정한 고정 된 메모리 영역에 저장되기 때문입니다.

전역 변수는 여러 함수가 동일한 데이터에 액세스하는 상황에서 유용합니다. 전역 변수의 값을 원치 않는 변화가있을 수 있으므로 많은 수의 전역 변수를 사용하는 것은 문제가 될 수 있습니다.

로컬 변수와 글로벌 변수의 주요 차이점.

  1. 로컬 변수는 선언 된 내부 함수에 작성된 명령문에만 알려지기 때문에 로컬 변수는 '로컬'이라고하며 함수 블록 외부에있는 다른 함수에는 알 수 없습니다. 전역 변수의 경우에는 프로그램에있는 모든 함수에 대해 알 수 있습니다. 그러므로, 그들은 '글로벌'이라고 불린다.
  2. 전역 변수는 컴파일러가 결정한 고정 위치에 저장되므로 프로그램이 실행 단계에있을 때까지 그 값을 유지합니다. 지역 변수는 스택에 저장됩니다. 따라서 '스택'은 본질적으로 동적이기 때문에 값을 유지하지 않지만 컴파일러는 '정적'수정자를 사용하여 값을 유지하도록 지시 할 수 있습니다.
  3. 글로벌 변수와 로컬 변수가 동일한 이름으로 선언되면 로컬 변수가 선언 된 코드 블록의 모든 명령문은 로컬 변수 만 참조하므로 전역 변수에 영향을 미치지 않습니다.
  4. 프로그램의 제어가 지역 변수가 선언 된 블록에서 빠져 나올 때 지역 변수는 파괴됩니다. 그러나 전역 변수는 전체 프로그램이 종료 될 때 삭제됩니다.

결론:

프로그램을 작성하는 동안 지역 변수와 전역 변수가 모두 필요합니다. 그러나 많은 수의 글로벌 변수를 선언하는 것은 대규모 프로그램에서 문제가 될 수 있습니다. 글로벌 변수에 원치 않는 변경을 초래할 수 있기 때문입니다. 프로그램의 어느 부분이 변경되었는지 식별하는 것은 어려워 질 것입니다. 따라서 불필요한 전역 변수를 선언하는 것을 피해야합니다.

Top