일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Design Pattern
- 푸시
- NoSQL
- 카프카
- 성능
- nginx설정
- php
- kafka
- GCM 번역
- gcm 푸시 번역
- 웹사이트 성능
- JPA
- 푸시 번역
- 웹사이트최적화기법
- git
- redis
- 자바스크립트
- 페이스북 번역
- GCM
- Push
- nginx
- notification
- 레디스
- 디자인패턴
- nginx설치
- 웹사이트성능
- 카프카 트랜잭션
- APNS
- Java
Archives
- Today
- Total
간단한 개발관련 내용
널 문자 (='\0')와 널 포인터 (= NULL = (void*)0) 그리고 false 본문
Computer Science/C
널 문자 (='\0')와 널 포인터 (= NULL = (void*)0) 그리고 false
vincenzo.dev.82 2015. 3. 6. 01:04반응형
학교 다닐 때 다른 블로그에 등록했던 글 복사 ㅎㅎ - 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); |
모두 같은 값을 가지는 것들이지만...
상황에 따라 쓰이는 경우가 다르지요?
이렇게 의미상 구분이 되는 것들을 나누어 놓지 않으면,
큰 프로그램을 분석할때 아주 골치 아파 진답니다.
반응형