해결된 질문
작성
·
175
답변 3
0
아, 데이터 참/거짓 영상이신데
질문 자체가 영상 <함수(메서드) 선언과 호출>에 연계되어 있어서 헷갈렸습니다.
문자열로 선언하는 경우 (배열 아니고) "Hello"로 하는 경우에는 알아서 '\0'이 들어가있습니다.
하지만 배열로 하나씩 넣는 경우에는 보통 마지막에 의도적으로 '\0'을 넣어서 문자열의 끝을 만들어줍니다.
(예를 들어 배열 100칸짜리를 만들어 두고, 5개만 할당했을 때는 '\0'을 넣어서 끝을 알려주기 위해서 그렇게 할 수 있습니다.)
그런데 아래와 같이 하면 sizeof 문자열 했을 때 5가 나오면서 전체가 정상적으로 출력이 되긴합니다.
#include <stdio.h>
int main() {
// 문자 배열을 선언합니다.
char str[] = {'h','e','l','l','o'};
// 결과를 출력합니다.
printf("%d\n", (int)sizeof(str));
printf("%s\n", str);
return 0;
}
그러니까 엄밀히 말하면, 쓰지 않아도 정상적으로 동작은 합니다.
하지만 저렇게 디테일하게는 문제에 나오지 않으니, '\0'을 안 넣어도 동작은 하는구나 정도로 알고 계시면 되겠습니다.
0
0