포인터란?
type이 곧 주소인 변수 (저장하기로 한 값을 주소로 해석)
-포인터를 통해 내부 주소들을 엿볼 수 있기에 포인터를 직접 코딩하는게 프로그램 뒷단의 주소들의 구조를 간접적으로 파악하는데 도움됨
-포인터를 여러번 중첩하여 주소들을 여러 걔 연결시키는 것도 가능함
(+ 포인터에 쓰이는 * 표시는 *뒤에 있는 값을 주소로 생각해서 가봐라 라는 뜻임)
** 포인터 작동 원리 **
CPU (처리) memory (저장)
|---------------------| (address) |---------------------|
| | <=> | |
| ALU | (data) | |
| IP | <=> | |
| Register | (control) | |
| | <=> | |
|---------------------| |---------------------|
** 포인터와 관련된 CPU 구성 **
-ALU(Arithmetic Logic Unit)라는 논리연산자
-IP(Intellectual Poperty라는 회로 설계 블록
-Register라는 데이터들을 작업하기 위해 임시저장하는 메모리 공간
(+Memory는 주소(300번지), 변수이름, 데이터(내용)등으로 구성되어 있으며,
데이터들이 모델링을 거쳐 저장됨)
1) address : IP 300
date : (변수에 저장된 내용)
control : Read
라고 CPU에서 memory에 보내면 300번지 주소에 저장된 내용을 CPU로 읽어들임
2) address : IP 600
date : (변수에 저장된 내용)
control : Write
라고 CPU에서 memory에 보내면 memory내의 600번지 주소에 데이터들을 저장함
(+IP는 CPU랑 memory사이 주소와 관련된 일을 처리함)
'프로그래밍 언어 > C언어' 카테고리의 다른 글
C언어 기초이론 (함수) (0) | 2024.06.13 |
---|---|
C언어 기초이론 (지역변수, 전역변수) (1) | 2024.06.13 |
C언어 기초이론 (재귀함수) (0) | 2024.06.13 |
C언어 기초이론 (배열) (1) | 2024.06.13 |
C언어 기초이론 (문자열관련 함수) (0) | 2024.06.13 |