지역변수와 전역변수의 초기화 initialized 이야기
이번 글에서는 자바 변수의 초기화에 대해서 기본 개념을 정리해볼까 합니다. 자바에서는 변수를 선언하면 종류에 따라서 메모리의 두 곳에 할당되는데 전역변수(이하 멤버)는 Garbage Collection Heap이라는 곳에 위치하며 지역변수(이하 지역)는 Runntime Stack에 할당됩니다. 이것들이 메모리의 어디에 할당되느냐에 딸라서 달라지는 건 스스로 초기화가 되는지 여부인데 Runntime Stack에 자리르 잡는 지역은 자동으로 초기화가 이루어지지 않습니다. 그렇기 때문에 반드시 따로 진행을 해줘야 하는데요. 다른 말로 메서드 내에 있는 것은 무조건 초기화를 해줘야 한다는 의미입니다. 예를 들어 다음과 같은 코드가 있을 때.... public class Test { public static vo..
c언어 독학 전역변수의 특징
■ c언어에서 변수는 지역과 전역 variable가 있는데 그 이름에서도 알 수 있듯이 프로그램 전체에서 접근할 수 있는 게 전역변수이고, 함수의 내부(일부 지역)에서만 접근할 수 있는 게 지역변수입니다. 지난 글에서 지역변수에 대해서 정리해봤고, 이번에는 전역변수의 개념을 예제를 통해서 확인해보겠습니다. 이 녀석의 특징은 프로그램이 실행함과 동시에 메모리에 할당돼서 존재하다가 프로그램이 종료될 때 소멸하며 프로그램 내부 어느 지역에서든 접근이 가능합니다. 그리고 값을 초기화하지 않으면 자동으로 "0"이 됩니다. 다음과 같은 간단한 예제를 보겠습니다. ▲ [int x]는 함수의 밖에 선언(전역)했고 [int y]는 함수 내부(지역)에 선언했습니다. 이 둘의 차이점을 확인하기 위해서 둘 다 초기화하지 않은..
c언어 프로그램 다양한 형식의 지역변수
■ 지난 글에서 지역변수의 개념을 정리해봤었는데요. 이번에는 좀 더 다양한 몇 가지 Local Variable에 대해서 알아보겠습니다. 개념 정리하면서 지역변수는 중괄호{}안에 선언되는 변수라고 했습니다. 그런데 이 중괄호는 함수에서만 사용되는 게 아니고 if 문이나 for 문처럼 제어문에서도 사용되는데요. 이런 제어문 안에 선언된 변수도 지역변수입니다. 그래서 괄호 시작 시점에서 메모리에 할당되며 중괄호가 끝날 때(제어문 빠져나오는 시점) 메모리에서 소멸하게 되는데요. 다음 코드를 보겠습니다. ▲ 어떤 값들이 출력될지 대충 예상되는 간단한 for 문인데요. 일단 프로그램을 실행부터 해보겠습니다. ▲ 예상했던 결과가 출력됐나요? for 문은 5번 반복되는 게 맞는데... 왜 계속 x의 값이 '1'이 출력..