관리 메뉴

hye-_

포인터, 간접 참조 연산자 본문

CS/C언어1

포인터, 간접 참조 연산자

hyehh 2024. 7. 10. 12:30
728x90
반응형
SMALL
728x90
반응형
SMALL

컴퓨터의 메모리 (Memory)

바이트(Byte) 단위로 주소를 붙임

첫 번째 바이트의 주소는 0, 두번째 바이트의 주소는 1, ...

 

주소(address)로 메모리에 접근 가능

 

 

변수

○ 메모리에 저장됨

○ 컴파일러에 의해 메모리 공간의 비어있는 위치에 할당됨

○ 자료형에 따라 메모리에 차지하는 공간이 달라짐

 

포인터(Pointer)

메모리의 주소를 가지고 있는 변수 

 

변수의 크기에 따라 차지하는 메모리 공간이 달라짐

일반적인 PC 환경

char형 변수는 1바이트 차지

int형 변수는 4바이트 차지

float형 변수는 4바이트 차지


주소 연산자(Address of operator) &

c언어에서 변수의 주소를 계산하는 연산자

변수의 이름을 받아서 변수의 주소를 반환함


포인터

변수의 주소를 가지고 있는 변수 : 포인터 변수

○ 사용하기 전에 선언되어야 함

○ 포인터 이름은 식별자 규칙을 따름

초기화


 

간접 참조 (dereferencing, indirection)

포인터가 가리키는 주소에 저장된 내용을 읽음

포인터를 통하여 메모리에 접근

 

포인터

메모리의 주소를 저장할 수 있는 변수

포인터를 통하여 값을 읽거나 변경 가능

 

간접 참조 연산자

포인터가 가리키는 값을 가져오는 연산자

 

& 연산자 ○ 변수의 주소를 반환함
○ 변수의 주소를 구하여 포인터에 대입할 때 사용되는 연산자
* 연산자 ○ 포인터가 가리키는 곳의 내용을 반환함
○ 포인터를 통하여 변수를 간접 참조할 때 사용하는 연산자 

 

 


간접 참조 연산자 주의사항

● 초기화가 안된 포인터를 사용하면 안됨

 

 

NULL 포인터 사용

포인터가 아무것도 가리키고 있지 않는 경우 NULL로 초기화

NULL : 헤더파일 stdio.h에 0으로 정의되어 있음

 

포인터 p가 유효한지 검사

 

 

포인터의 타입과 변수의 타입 일치


 

728x90
반응형
LIST

'CS > C언어1' 카테고리의 다른 글

문자 처리 라이브러리  (1) 2024.07.11
문자와 문자열  (1) 2024.07.10
배열의 개념  (0) 2024.07.10
함수의 생존 시간  (0) 2024.07.10
함수와 기억 클래스  (0) 2024.07.10