궁금증 연구소

안녕하세요. 궁금증연구소 입니다.

오늘 포스팅 주제는 "c언어 0, '0' , '\0' 의 차이는?" 입니다.

 

#include <stdio.h>
#include <string.h>

main()
{
    char be[10] = "123456";

    *be = 'A';
    be[1] = 'B';
    *(be+2) ='C';
    be[3] = 0 ;  

    puts(be);
}

위와 같은 문자열배열이 있다고 하면, 배열의 값 각각은 위와 같이 변경을 해줄수 있다.

이때 puts 함수는 문자열 배열의 첫째 주소값(포인터)을 매개변수로 받는다. 출력해야할 개수를 인자로 넘겨주지 않아도

출력이 가능한 이유는 문자열 배열의 끝에 0이 들어가기 때문이다.

 

 

이때 0은 숫자 0을 의미한다. 따라서 위와같이 be[3] 에 0을 넣어주면 출력은 ABC까지만 되고 끝이 난다.

만약 숫자 0이 아닌 문자열 '0'을 넣어주면 어떻게 될까?

 

ABC056 와같이 출력될 것이다.

 

즉 문자열의 끝을 표시하는 0은 숫자0을 의미한다. 숫자 영은 '\0' 와 같은 의미이다. 0이 더 편하므로 0으로 써야겠다.

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading