C언어의 NULL문자는 문자열의 끝을 표시하기 위해 만들어진 문자입니다.
우리가 프로그래밍을 하면서 메모리 공간에 문자열을 저장하든 숫자를 저장하든
컴퓨터의 메모리 공간에는 모든것을 바이너리 형태인 '기계어(0과 1로만 표현된 언어)'로 저장되기 때문에
가령 00011001이라는 데이터가 저장되어있을때
이것이 문자열인지, 숫자인지 사람도 컴퓨터도 구별 할 수 없습니다
따라서, 문자열의 끝에는 NULL문자를 붙이도록 C언어에서는 약속 되어있습니다.
NULL문자를 정수형으로 나타내면 숫자 0, 문자형으로 나타내면 \0 인데,
printf("%d", \0)을 해본다고 한들 아무것도 출력되지 않습니다
왜냐하면 NULL문자가 만들어진 이유 그대로 문자열의 끝을 표시만 해주면 되기때문에
출력공간에 출력해줄 필요가 없기때문입니다.
아무것도 출력되지 않는다고해서 스페이스바(공백)과 혼돈하기 쉬운데
공백문자는 널문자와 전혀 다른 개별의 문자이며 실제로 아스키코드 숫자값이 다릅니다.
또한 NULL이 가지는 다른 하나의 의미로 '아무것도 저장하지 않는다'가 있는데
이것은 우리가 흔히 선언과 동시에 초기화 해주지 않으면 쓰레기 값으로 자동초기화되는
지역변수, 혹은 포인터 변수같은것을 선언할때 그것을 방지하기 위해
int num = 0;
int * ptr = NULL;
과 같이 쓰입니다.
5. 다차원 배열과 포인터의 포인터 (0) | 2020.10.04 |
---|---|
4. 문자열을 배열, 포인터에 저장하는법과 특징 (0) | 2020.10.04 |
3. 지역변수, 전역변수 그리고 Static 지역변수 (0) | 2020.10.04 |
1. return 0; 의 2가지 의미 (0) | 2020.10.04 |
0. C언어의 탄생배경과 특징 (0) | 2020.10.04 |