[C] C언어에서 NULL, \0, 0 에 대해서

C언어에서 NULL, \0, 0 에 대해서

enter image description here

C언어에서 NULL, \0, 0 에 대해서

친구들과 얘기하다가 NULL, \0, 0 에 대해서 같은거냐 다른거냐에 대한
논쟁이 있었다.

결론부터 얘기하면 언어에 따라 다르다

C언어를 기준으로 얘기 했을 때 테스트 코드는 아래와 같다.

#include <stdio.h>

int  main(void)
{
        int int_n1 = 0;       
        char char_n1 = 0;    
        char char_n2 = '0'; 
        char char_n3 = '\0';
        char *char_n4 = 0; 
        char *char_n5 = "";
        char char_n5_1[] = ""; 
        char *char_n6 = '\0';
        char *char_n7 = NULL;

        printf("=================\n");
        printf("int\t0\t: %d\n", int_n1);
        printf("char\t0\t: %c\n", char_n1);
        printf("char\t'0'\t: %c\n", char_n2);
        printf("char\t'\\0'\t: %c\n", char_n3);
        printf("*char\t0\t: %s\n", char_n4);
        printf("*char\t\"\"\t: %s\n", char_n5);
        printf("char[]\t\"\"\t:%s\n", char_n5_1);
        printf("*char\t'\\0'\t: %s\n", char_n6);
        printf("*char\tNULL\t: %s\n", char_n7);

        return (0);
}

결과는 아래와 같다

=================
int     0       : 0
char    0       :
char    '0'     : 0
char    '\0'    :
*char   0       : (null)
*char   ""      :
char[]  ""      :
*char   '\0'    : (null)
*char   NULL    : (null)

C언어에서 변수의 값으로 0과 ‘\0’ 은 동일하고
변수의 주소값으로 0, ‘\0’, NULL은 같은 의미이다.

끝.

댓글 쓰기

0 댓글