컴퓨터가 변수를 처리하는 방법
1. 프로그램 메모리 주소
1) 컴퓨터에서 프로그램이 실행되기 위해서는 프로그램이 메모리에 적재되어야 함
2) 당연히 프로그램의 크기를 충당할 수 있을 만큼의 메모리 공간이 있어야 함
3) 특정한 프로그램을 실행하게 되면 그 프로그램이 메모리에 적재되어 돌아가게 됨
4) 일반적인 컴퓨터의 운영체제는 메모리 공간을 네 가지로 구분하여 관리함
2. 전역 변수
1) 전역 변수란 프로그램 어디서든 접근 가능한 변수이다.
2) 프로그램 시작과 동시에 메모리(데이터 영역)에 할당 된다.
3. 지역 변수
1) 지역 변수란 프로그램의 특정한 블록에서만 접근 가능한 변수
2) 함수가 실행될 때 마다 메모리(스택 영역)에 할당되어 함수가 종료되면 메모리에서 해제
4. 정적 변수
1) 정적 변수란 특정한 블록에서만 접근 가능한 변수
2) 프로그램이 실행될 때 메모리(데이터 영역)에 할당되어 프로그램이 종료되면 메모리에서 해제
3) 프로그램 실행될 때 메모리 할당 되고 특정한 블록에서만 접근 가능. 즉 지역 변수 와 전역 변수의 특징을 모두 갖고 있다.
5. 레지스터 변수
1) 레지스터 변수란 메인 메모리 대신 CPU의 레지스터를 사용하는 변수
2) 메인 메모리보다 레지스터가 CPU와 더 가깝기 때문에 기본적으로 처리 속도가 빠르다
2) 레지스터는 매우 한정되어 있으므로 실제로 레지스터에서 처리될 지는 장담할 수 없음.
6. 함수의 매개변수가 처리될 때
1) 함수를 호출할 때 함수에 필요한 데이터를 매개변수로 전달
2) 전달 방식은 "값에 의한 전달"과 "참조에 의한 전달"이 있음
3) 값에 의한 전달 방식은 단지 값을 전달하므로 함수 내에서 변수가 새롭게 생성 -> 지역변수처럼 작동
4) 참조에 의한 전달 방식은 주소를 전달하므로 원래의 변수 자체에 접근 가능 -> 전역변수처럼 작동
** 패스트캠퍼스의 '컴퓨터공학 올인원 패키지' 강의를 듣고 작성한 글입니다
'TIL > Computer Science' 카테고리의 다른 글
(운영체제) 사용자 모드와 커널 모드 (0) | 2022.05.26 |
---|---|
(운영체제) 시스템 콜 (0) | 2022.05.25 |
(운영체제) 시분할 시스템과 멀티 태스킹 (0) | 2022.05.25 |
(운영체제) 운영체제와 응용프로그램 (0) | 2022.05.25 |
(C언어) 2. 동적 메모리 할당 (0) | 2022.04.05 |