Null-terminated Array

문자열 함수는 '\0'을 만날 때 멈춥니다

C 스타일 문자열은 배열 전체가 아니라, 시작 위치부터 널 문자 직전까지를 문자열로 봅니다.

char city[7] = "Seoul"; 메모리 해석

끝 뒤 칸은 문자열 내용이 아님
S0
e1
o2
u3
l4
\05 끝
?6 여유
5

strlen(city)

널 문자 전까지의 실제 문자열 길이입니다.

7

sizeof(city)

배열이 가진 전체 칸 수입니다.

1+

널 문자 공간

문자열 리터럴은 마지막 칸을 자동으로 채웁니다.

배열 크기 확인

선언된 칸 수가 문자열과 널 문자를 모두 담는지 봅니다.

끝 위치 확인

'\0'이 없으면 함수가 배열 밖까지 읽을 수 있습니다.

함수 기준 확인

strlen, strcpy, 출력 함수는 끝 표시를 기준으로 동작합니다.

읽는 순서

C 문자열을 만나면 “배열 크기 -> 실제 글자 -> '\0' 위치”를 분리해 확인합니다.