반응형


학교 다닐 때 다른 블로그에 등록했던 글 복사 ㅎㅎ - http://blog.naver.com/7dbwnckd/50012727041


널 문자 (='\0')와 널 포인터 (= NULL = (void*)0) 그리고 false 는

사실상 0x00 이라는 같은 값을 가집니다.


하지만 의미상 확연한 차이가 있기 때문에, 다르게 쓰입니다.


# 널 문자

널 문자는 보통, 문자열의 끝을 알리는데 쓰입니다.

char *str = "abcd";

-> [ 'a' | 'b' | 'c' | 'd' | '\0' ]




# 널 포인터

포인터 변수 초기화나 포인터 파라미터 전달 시에 주로 쓰입니다.


// 포인터 변수 초기화
char *pstr = NULL;

// 포인터 파라미터 전달
time_t time(time_t *); // time() 함수 프로토타입

time(NULL);



# 논리값 false

bool 형 변수에 값을 대입하거나, 함수 파라미터 전달 시에 쓰임.

void my_func(bool bExist); // 프로토타입

my_func(false);




모두 같은 값을 가지는 것들이지만...

상황에 따라 쓰이는 경우가 다르지요?


이렇게 의미상 구분이 되는 것들을 나누어 놓지 않으면,

큰 프로그램을 분석할때 아주 골치 아파 진답니다.

반응형

+ Recent posts