본문 바로가기
언어/C

NULL의 개념

by 맑은청이 2020. 8. 24.
728x90
반응형

-NULL 개념

-널 포인터 상수

-NULL 매크로

-NUL 아스키 문자

-널 문자열

-널 문장

 

 

포인터에 NULL을 할당한다는 것은??

-> 해당 포인터는 아무것도 가리키지 않음을 의미

 

널 개념은 포인터가 다른 포인터와 다른 특별한 값을 가질 수 있음을 의미한다. 

실제 널 개념은 널 포인터 상수에 의해 지원되는 추상적 개념이다. 

널 포인터 상수는 0이거나 0이 아닐 수도 있으나 개발자가 신경을 쓰지 않아도 된다. 

 

 

 

NULL 매크로는 상수 정수 0을 void 포인터로 캐스팅한거다. 많은 라이브러리에서 다음과 같이 정의 되어 있다. 

 

#define NULL ((void*)0)

 

 

NUL 아스키 문자는 모두 0으로 채워진 바이트로 정의된다. 그러나 NUL 은 NULL 포인터와 같지 않다.

널 문자열은 빈 문자열이고 어떤 문자들도 포함하지 않는다. 

 

널 포인터는 연결 리스트에서 종종 리스트의 끝을 표시하기 위해 사용되는 것처럼 많은 데이터 구조의 구현에서 유용하게 사용된다. 

 

0값은 포인터에 할당될 수 있지만 다른 정숫값들은 할당되지 않는다.

 

pi = 0

pi = NULL

pi = 100(X)

 

그래서 다음과 같이 쓸 수 있다. 

 

if(pi){ //널이 아닌 경우

 

}else{//널인 경우 

}

 

728x90
반응형

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

sizeof 연산자  (0) 2020.09.28
%*c 형식문자  (0) 2020.09.22