요약
1. NUL과 ‘\0’은 같고, NUL과 ‘0’은 다르다.
Definition | Data Type | |
NUL | ASCII코드의 Symbol 값 NUL | char |
‘\0’ | ASCII코드의 OCT값 | char |
'0’ | ASCII코드의 Symbol 값 0 | char |
2.
NUL(널 또는 널 문자)는 문자열 처리에서 사용되고, NULL(널 또는 널 포인터)은 주로 포인터 변수에서 사용된다. NUL은 문자열 처리에서, NULL은 포인터 변수에서 숫자 0으로 대체하여 사용가능 하지만, 그 이외에는 명시적 형변환을 사용하지 않는 이상 서로 대체가 불가하다.
Definition | Data Type | Type Coversion | |
NULL | NULL 포인터 0x00000000 | pointer(void *)0 | (포인터변수)0 |
0 | 정수 0 | int | (포인터변수)NULL, (문자열변수)NUL |
NUL | ASCII코드의 Symbol 값이 NUL | char | (문자열변수)0 |
//변수 초기화하는 법
char val = '\0';
char val = 0;
int val = 0;
//배열 초기화하는 법
char val[10] = {'a', 'b', 'c', '\0'}; //문자열의 끝을 알림
char val[10] = {0};
//포인터변수 초기화하는 법
char *ptr = NULL
char *ptr = 0
//주의: int val = NULL과 int val = 0 은 다르다
C
복사