변수의 종류 파악하기 지금까지 변수와 배열을 사용했던 곳은 main() 함수 안이거나 직접 만든 함수 안이었다. 그러나 변수와 배열의 선언은 반드시 함수 안에서만 해야 하는 것은 아니다. 변수와 배열은 함수 바깥에서도 선언 가능하기 때문이다. 함수 안에 선언한 변수를 지역 변수(local variable), 함수 바깥에 선언한 변수를 전역 변수(global variable) 이라고 부른다. 스코프의 원리 이해하기 지역 변수와 전역변수는 어떤 차이점이 있을까? 먼저 지역 변수(local)의 경우, 선언된 함수 안에서만 사용할 수 있다. 반면 전역 변수(global)는, 어떠한 함수에서도 사용할 수 있다. 밑의 그림은 각각의 변수의 유효 범위를 그림으로 표현한 것이다. 이러한 변수 이름의 통용범위를 가리켜 ..
C++
더보기 Code 영역 프로세스가 실행할 코드와 매크로 상수가 기계어의 형태로 저장된 공간이다. 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only 로 지정돼있다. Data 영역 코드에서 선언한 전역변수 또는 static 변수 등등이 저장된 공간이다. 전역변수/static 값을 참조한 코드는 컴파일 하고 나면 Data 영역의 주소값을 가르키도록 바뀐다. 실행 중도에 전역변수가 변경 될 수도 있으니 이 영역은 Read-Write로 지정돼있다. 단, 초기화 되지 않는 전역 변수는 BSS 영역에 할당된다. Stack 영역 (스택) 1) 매개변수, 지역변수 - 함수 2) 함수호출 할당, 함수호출끝 해제 3) 공간이 작다(보통 1mb) 4) 크기가 컴파일 타임에 정해진다. 자료구조로 많이 알려진 ..
배열의 원리 이해하기 프로그램 안에서 많은 데이터를 처리하는 경우에 사용한다. 예를 들어 50명의 학생이 있는 반의 시험 점수를 다루는 프로그램이 있다면, test1 부터 test 50까지 총 50개의 변수를 일일이 준비해야 한다. 이 경우 코드가 복잡해지고 읽기 어려워지기 때문에 배열(array)이라는 메커니즘을 활용하여 편리하게 코드를 작성할 수 있다. 배열은 같은 형의 값을 동시에 여러 개 기억하기위한 편리한 기능을 제공한다. 배열은, 같은 이름을 가진 상자들이 모여서 줄 지어 있는 모습을 상상해 보면 된다. 배열에 저장된 각각의 상자는 배열의 요소(element)라고 한다. 배열 선언하기 형명 배열명[요소 개수]; 예를 들어, int형 값을 5개 기억할 수 있도록 요소 개수를 5라고 지정한 배열 ..
주소(address) : C++에서의 주소란, 메모리 위치를 직접 가리킬 때 사용되는 메모리에서의 '주소'를 의미한다. 컴퓨터 안에서 사용되는 주소이기 때문에 16진수를 사용하여 0x1000, 0x1004... 이런 식으로 표현하는 경우가 많다. 인간과 컴퓨터를 비교해 보면, cpu를 두뇌로 메모리를 노트로 생각해 볼 수 있는데, cpu(머리속)에 있는 변수와 객체 등등의 개념을 사용하려면 메모리(노트)에 올려놓고 써야만 한다. 이때 노트에 쓴 것들의 위치가 존재하듯이 메모리를 할당해야만 한다. 그래서 그 메모리마다 고유의 주소를 갖게 되는 것이다. 1. 주소 변산자 & - 변수의 주소(메모리에서의 위치) 확인하기 변수값이 메모리의 어느 부분에 저장되어 있는지 그 주소를 확인할 때에는 주소 변산자(add..