학교 다닐 때 다른 블로그에 등록했던 글 복사 ㅎㅎ - 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); |
모두 같은 값을 가지는 것들이지만...
상황에 따라 쓰이는 경우가 다르지요?
이렇게 의미상 구분이 되는 것들을 나누어 놓지 않으면,
큰 프로그램을 분석할때 아주 골치 아파 진답니다.