1byte = 8bit
변수와 메모리 주소
변수는 기본적으로 메모리의 주소를 기억하는 역할을 한다.
메모리 주소란, 물리적인 메모리 공간에서의 정확한 위치를 식별하기 위한 고유 주소이다.
변수를 참조할 때는 해당 메모리 주소에 저장된 데이터를 참조하게 된다.
따라서 변수는 데이터가 저장된 메모리 주소 + 저장된 데이터 길이 + 형태 에 관한 정보를 함께 기억한다.
하나의 메모리 공간에는 1바이트의 데이터가 저장된다. 그림의 변수 같은 경우에는 총 4바이트의 데이터를 저장한다.
변수의 선언
C++에서는 변수를 사용하기 전에 저장하기 위한 메모리 공간을 할당받아야 하는데, 이를 변수의 선언이라고 한다.
1. 변수 먼저 선언하여 메모리 공간 할당받은 후 나중에 변수 초기화
2. 변수의 선언과 동시에 초기화
두 방법이 있다.
//1
int num;
num = 20;
//2
double num3 = 1.23, num4 = 4.56;
//선언하고자 하는 변수의 타입이 서로 다르면 동시에 선언할 수 없음
C언어가 사용하는 메모리
프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간:
1. 코드(code) 영역
2. 데이터(data) 영역
3. 스택(stack) 영역
4. 힙(heap) 영역
1. 코드 영역 (텍스트 영역)
실행할 프로그램의 코드가 저장되는 영역
CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다.
2. 데이터 영역
프로그램의 전역 변수와 정적 변수가 저장되는 영역
이 영역은 프로그램 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다.
3. 스택 영역
함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역
이 영역은 함수의 호출과 함께 할당되며 함수 호출이 완료되면 소멸한다.
스택은 후입선출(LIFO, Last-In First-Out) 방식에 따라 동작하므로, 가장 늦게 저장된 데이터가 가장 먼저 인출
메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다.
4. 힙 영역: 동적 할당
사용자가 직접 관리해야 하는 메모리 영역
사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.
메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다.
참고 자료 출처
http://www.tcpschool.com/c/c_memory_structure
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9
동적 메모리 할당 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸
ko.wikipedia.org
C언어 메모리 구조 - 실제 메모리로 확인하기 (1/3)
C언어가 사용하는 메모리 구조 XCode를 이용하였지만, 보는데에는 큰 지장이 없습니다. 1. C언어가 사용하는 메모리C언어의 메모리 관리와 관련된 이미지를 검색해보면 정말 다양한 내용들을 볼
youngq.tistory.com
'코딩놀이: python C C++' 카테고리의 다른 글
[C++] 분수 정렬 (0) | 2023.12.15 |
---|---|
[C++][백준 9047번] Kaprekar 6174 문제 (0) | 2023.12.11 |
[C++][TCPschool] iostream (0) | 2023.08.28 |
[C++][TCPschool] C++ 프로그래밍 (0) | 2023.08.28 |
[프로그래머스 lv3] 표 편집, linked list (0) | 2022.09.24 |