본문 바로가기
수업 복습/C 복습 노트

[C언어] C언어 수업 8차시

by LimitLog 2021. 5. 4.

1. 변수와 메모리 저장위치

프로세스란 연속적으로 실행되고 있는 컴퓨터 프로그램을 뜻하는 말이다. 그렇다면 프로그램과 프로세스의 차이는 무엇일까?

프로그램은 컴퓨터의 하드 디스크나 SSD와 같은 보조 기억장치에서 실행되기를 기다리는 정적인 코드의 집합체를 의미한다. 하지만 프로세스는 이 프로그램이 메모리에 적재되어 있는 상태, 즉 프로그램이 실행 중인 상태를 의미한다.

다음은 프로세스의 구조를 간략하게 나타낸 그림이다.

프로세스의 구조

프로그램에 선언된 변수 중 전역변수와 정적변수는 데이터 세그먼트에, 지역변수는 스택 세그먼트에 할당 받는다.

둘 다 메모리에 할당된 변수의 주소를 확인하기 위해 주소연산자(&)를 사용할 수 있다. 즉, 포인터 변수를 선언할 수 있다는 의미이다.

그러나 데이터 세그먼트에 변수가 할당된 영역은 특별히 초기화를 하지 않을 경우 항상 0부터 시작하는데 반해, 스택 세그먼트는 계속 재활용되는 공간이므로 변수가 할당된 영역에 어떤 값이 남아있을지 알 수 없다.

'수업 복습 > C 복습 노트' 카테고리의 다른 글

[C언어] C언어 수업 10차시  (0) 2021.05.18
[C언어] C언어 수업 9차시  (0) 2021.05.11
[C언어] C언어 수업 7차시  (0) 2021.04.20
[C언어] C언어 수업 6차시  (0) 2021.04.13
[C언어] C언어 수업 5차시  (0) 2021.04.06

댓글