【 C 언어 】 #37 NULL 널 문자 이해하기

Language/C & C++ 2018. 5. 3. 11:03 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #37 NULL 문자 이해하기



 문자열 길이를 구하는 문제를 통해 NULL 문자에 대해 이해 할 수 있다.  


▶ 문제  : 문자열 길이(예, abcdefg: 길이 7) 를 구하는 코드를 작성하라. 



▶ 포인트 


- 문자열의 끝은 항상 NULL('\0')문자 로 종료된다.

NULL 문자는 아스키 코드 값  '0' 이다

- 문자열 길이를 구하는 함수를 따로 작성하여 코딩한다.

- 문자형 포인터 변수(*pstr)를 사용하여 코딩한다.

- *pstr 은 pstr이 가리키는 번지에 저장되어 있는 값을 의미한다. 



▶ 프로그램 : 


# 이미지를 클릭하면 확대 되어 선명하게 보실 수 있습니다.


▶ 실행 결과 :


▶ 보충설명 :


- *pstr 은 pstr이 가리키는 번지에 저장되어 있는 값을 의미한다.  따라서 pstr은 번지(주소) 라는 것을 이해 해야 한다.

- pstr은 문자열의 선두 번지를 가리키고 있기 때문에, pstr의 번지가 1씩 증가(pstr++)함에  따라 *pstr의 값은 첫 번째 값 a 부터...  b, c, d, e, f, g, \0  처럼 된다.

- while문에서 NULL문자('\0') 의 아스키 값은 '0' 이기 때문에 문자열 끝을 알리는 NULL 문자를 만나면 while 문을 빠져 나오게 된다.

- pstr++;   은 pstr의 번지를 1만큼 증가 시킨다(pstr은 포인터 변수 이기 때문)

- len++;   은 문자열 길이 값을 1만큼 증가 시킨다


 문자열 'abcdefg' 가 메모리에 저장된 모습을 그림으로 그려 보면 아래와 같다.

문자열의 첫 번째 a가 저장된 번지를 '1000'번지라고 가정 해 보자.


# 이미지를 클릭하면 확대 되어 선명하게 보실 수 있습니다.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


37 NULL 넌 문자 이해하기-코드.cpp






반응형