선언 방법은 전에 보셨듯이, char a[6] = "hello"처럼 쌍따옴표 "" 를 사용해서 변수를 선언할 수 있다고 했습니다. 그런데 왜 굳이 변수 5개를 선언하는 것이 아니라 6개를 선언하는 걸까요? 그것은 바로 NULL 때문에 그렇다고 볼 수 있습니다. 6번째 변수에는 아무 문자도 들어가 있지 않아서 빈 문자로 해당되는데, 이것이 바로 NULL입니다. NULL은 '없다'라고 생각하시면 됩니다. 왜냐하면 ASCII 값이 0이거든요. 기호문자도 \0이고요. 다른 뜻들이 있긴 하지만, 그건 포인터에 나오는 거에요;;; 지금은 아실 필요가 없습니다. 그러면 전에 선언했던 a의 값은 h, e, l, l, o, NULL라고 볼 수 있습니다. 여기에 NULL을 넣는 이유는 배열의 안정성 때문입니다. 만약 원소 끝에 NULL을 넣지 않으면 저도 어떻게 되는 지는 모르겠지만(실제로 안 해봐서) 이상한 값이 나온다고 하더라고요;;; 그래서 뒤에 NULL을 넣는다고 합니다. 또 다른 이유도 있는데, 다음과 같이 반복문에서 활용할 수 있습니다.
char c[6] = "hello"; int i; for(i = 0; c[i] != NULL; i++){ printf("%c", c[i]); } return 0;
여기에서 for문의 변화를 보실 수 있죠? i가 NULL에 도착할 때까지 돈다는 뜻입니다. 다음과 같이 활용할 수 있습니다. 다음에는 문자열 배열의 입출력에 대해서 알아보겠습니다.