변수는 프로그램에 의해 제어될 수 있는 저장 영역에 할당된 이름입니다. 변수 유형은 변수 메모리의 크기와 구성을 지정합니다.
변수에 값을 삽입하기 전에 변수의 종류를 결정해야 하므로 변수에 삽입할 수 있는 값의 범위는 값을 삽입하기 전에 계산됩니다.
변수의 범위
변수의 범위는 말 그대로 변수의 수명입니다. 변수가 유효하거나 아직 살아있는 코드 블록입니다.
function poo() { var a; }
'a' 함수 내에서 'poo' 변수를 선언합니다. 해당 변수의 범위는 해당 함수 내에 유지되며 해당 함수 외부에서 사용할 수 없습니다.
프로그래밍에서 변수를 활용할 수 있는 세 가지 위치가 있습니다.
- 함수나 블록 내부에서는 지역 변수라고 합니다.
- 모든 함수 외부에서 사용되면 전역 변수로 명명됩니다.
- 함수 매개변수 정의에 사용되면 형식 매개변수라고 합니다.
주요 차이점
- 함수 내에서 선언된 변수를 지역변수, 함수 외부에서 선언된 변수를 전역변수라고 합니다.
- 반면, 함수가 실행을 시작하고 함수가 끝나면 손실되는 경우, 전역 변수는 실행이 시작될 때 생성되고 프로그램이 끝나면 손실됩니다. 지역변수가 생성됩니다.
- 로컬 변수에는 데이터 공유가 포함되지 않지만, 글로벌 변수에는 데이터 공유가 제공됩니다.
- 지역 변수는 스택에 저장되고 전역 변수는 프로그래머가 고정된 위치에 저장됩니다.
- 지역변수의 경우 매개변수가 필요하지만, 전역변수는 전달할 필요가 없습니다.
매개변수 | 현지의 | 글로벌 |
---|---|---|
범위 | 함수 내부. | 범위가 함수 외부에 있습니다. |
값 | 값이 초기화되지 않으면 쓰레기 값이 제공됩니다. | 값이 초기화되지 않으면 기본적으로 Zero가 제공됩니다. |
일생 | 함수가 실행을 시작할 때 생성되고 함수가 종료되면 손실됩니다. | 프로그램의 전역 실행이 시작되기 전에 생성되고 프로그램이 종료되면 손실됩니다. |
데이터 공유 | 불가능합니다. | 가능한. |
매개변수 | 필수의. | 필수는 아닙니다. |
액세스한 사람 | 지역 변수 | 프로그램 전체에서 전역 변수에 접근할 수 있습니다. |
메모리 저장 | 스택에. | 컴퓨터가 지정한 고정된 위치에 있습니다. |
지역 변수
로컬 변수는 프로그래밍 블록이나 서브루틴에서 선언된 변수의 형태로 지정됩니다. 지역 변수는 함수 블록이 실행되기 전에 지속됩니다. 그 이후에는 자동으로 사라집니다.
지역변수의 예
public int sum(){ int x =4; int y=5; return x+y; }
여기서 'x'와 'y'는 지역 변수입니다.
전역 변수
코드의 함수나 블록 외부에 지정되는 변수를 전역 변수라고 합니다. 이는 전 세계적으로 적용 가능하며 이는 프로그램의 수명 동안 관련성을 유지함을 의미합니다. 따라서 프로그램 내에 지정된 모든 기능은 숨겨진 경우를 제외하고 프로그램 내에서 해당 기능에 액세스할 수 있습니다.
글로벌 변수의 예
int x =4; int y=5; public int add(){ return x+y; }
여기서 'x'와 'y'는 전역변수이다.
전역 변수 사용의 장점
- 전역 변수는 프로그램의 모든 함수나 모듈에서 액세스할 수 있습니다.
- 모듈 외부에 일회용 전역 변수만 선언하면 됩니다.
- 사용자가 프로그램 전체에서 동일한 데이터에 계속해서 액세스해야 할 때 사용됩니다.
전역 변수 사용의 단점
- 너무 많은 변수가 전역으로 선언된 다음 프로그램 실행이 완료될 때까지 메모리에 유지됩니다. 이로 인해 메모리 부족 문제가 발생할 수 있습니다.
- 모든 기능은 데이터를 변경할 수 있습니다. 프로그램에 작성된 모든 명령문은 전역 변수의 값을 변경합니다. 멀티태스킹 환경에서는 예상치 못한 결과가 발생할 수 있습니다.
- 코드 리팩토링으로 인해 전역 변수가 중단되면 이름이 지정된 모든 모듈을 수정해야 합니다.
지역 변수 사용의 장점
- 작업이 실행되는 동안 변수의 값은 변경되지 않고 유지된다는 것이 로컬 변수의 기본 의미입니다.
- 동시에 실행되는 단일 변수가 여러 작업에 의해 변경되면 결과를 예측할 수 없습니다. 하지만 지역변수로 선언하면 해결됩니다.
- 서로 다른 함수의 변수에 동일한 이름을 할당할 수 있습니다.
- 함수가 실행되면 변수의 메모리가 해제됩니다.
지역 변수의 단점
- 지역 변수의 디버깅 방법은 매우 까다롭습니다.
- 모듈 간 데이터 공유가 불가능하므로 자주 사용되는 데이터를 정기적으로 전송해야 합니다.
- 그들은 매우 작은 스펙트럼을 가지고 있습니다.
무엇이 더 유용합니까?
모든 언어로 프로그램을 작성할 때 똑같이 필수적인 로컬 및 전역 변수입니다. 그러나 전역 변수의 양이 많으면 엄청난 메모리를 차지할 수 있습니다. 전역 변수로의 원치 않는 전환을 정의하기가 점점 어려워지고 있습니다. 또한 원하지 않는 전역 변수를 발표하지 않는 것이 좋습니다.