C

C 공부 5일차 Chapter 12

yeooniyeoon 2022. 9. 9. 23:52
728x90
SMALL

포인터

C언어는 포인터를 통해 메모리에 직접 접근이 가능하기에

low 레벨 언어의 특성을 갖고 있다고 할 수 있다.

 

포인터 변수에도 변수의 자료형처럼 형이 존재하는데 이가 필요한 이유는

메모리 공간에 접근 시 기준을 마련해준다.

예를 들어 int형 포인터 변수 p는

p가 가리키는 변수의 내용을 4바이트를 읽어들여 이를 정수로 해석한다.

 

 

포인터 변수의 크기

32비트 시스템에서는 주소를 32비트로 표현하는 반면

64비트 시스템에서는 64비트로 표현한다.

따라서 32비트 시스템에서 포인트 변수의 크기는 4바이트,

64비트 시스템에서 포인트 변수의 크기는 8바이트이다.

 

 

& 연산자

&연산자는 오른쪽에 오는 피연산자의 주소값을 반환하는 연산자로\

피연산자는 변수만 가능하다.

상수는 피연산자 자리에 올 수 없다!

 

 

널 포인터

포인터 변수 선언 시 초기화를 해주지 않으면 쓰레기 값을 갖게 된다.

이는 시스템에 오류를 일으킬 수 있게된다.

그렇다면 포인터 변수 선언 후 값을 바로 지정해주지 않을 경우에는 

널 포인터인 NULL 또는 0을 지정해준다.

 

int * p1=0;
int * p2=NULL;

 

여기서 0은 0번지를 의미하는 것이 아닌 널 포인터로

아무곳도 가리키지 않는다는 의미를 갖고 있다.

NULL 역시 널포인터로 이는 정수 0으로 정의되어 있다.

728x90
반응형
SMALL

'C' 카테고리의 다른 글

C 공부 7일차 Chapter 13  (0) 2022.09.12
C 공부 6일차 Chapter 13  (0) 2022.09.10
C 공부 4일차 Chapter 11  (0) 2022.09.08
C 공부 3일차 Chapter 6, 7, 8, 9  (2) 2022.09.07
C 공부 2일차 chapter 4, 5  (0) 2022.09.06