반응형
1. 0
- 그냥 정수 상수 literal 0.
- 타입은 int.
- 포인터 문맥에서는 null pointer 상수로도 해석될 수 있음
int* p = 0; // p는 nullptr과 같은 의미
2. ' \0 '
- 문자 상수.
- 실제 값은 0을 가진 char.
- 문자열 종료 문자(NUL character)를 표현할 때 쓰임.
char c = '\0'; // c == 0
const char* s = "Hi";
// s는 'H' 'i' '\0' 로 끝남
예를 들어
char str[6] = "Hello";
// 'H' 'e' 'l' 'l' 'o' '\0' 이렇게 이루어져 있음.
char str[6] = "Hello\0";
// 에러 'H' 'e' 'l' 'l' 'o' '\0' '\0' 총 7개의 문자가 들어가야 하지만 공간이 6개밖에 없음.
// C/C++에서 문자열 리터럴은 항상 마지막에 '\0'(NUL 문자)가 자동으로 붙는다.
3. NULL
- C/C++에서 전통적으로 쓰던 널 포인터 상수 매크宏.
- 보통 <cstddef> 헤더에서 정의됨:
- C++03까지는 #define NULL 0 또는 #define NULL ((void*)0)
- C++11 이후에도 0 또는 nullptr로 정의 가능
- 즉, NULL은 문자 NUL이 아니라 포인터 null을 의미.
int* p = NULL; // 널 포인터
int* p = nullptr; // 널 포인터
int* p = 0; // 널 포인터
4. NUL
- ASCII 제어문자 이름 중 하나.
- 값이 0인 문자 (U+0000) 를 의미.
- 보통 코드에서 '\0'으로 표현하지 NUL이라는 이름은 표준에 정의된 건 아님.
(C/C++ 표준 매크로도 아님. 보통 문서, ASCII 테이블 설명에서 사용됨) - 즉, "문자 집합에서 값 0을 가진 제어문자"를 가리키는 용어.
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
| C++ string::npos (-1) find함수의 반환값 (0) | 2025.09.29 |
|---|---|
| C++ String 헤더의 substr / find / erase 사용법 (0) | 2025.09.29 |
| C++ 연산자 우선 순위 (0) | 2025.09.21 |
| C++ 특정 문자 사이 값 입력받기 (0) | 2025.09.20 |
| C++ 지수 표기법 (0) | 2025.09.20 |
댓글