C 언어 기초
char s[10] = "hello";
printf("%zu %zu\n", strlen(s), sizeof s);문자열을 넣은 char 배열에 대해, 위의 코드를 실행했을 때의 출력으로 올바른 것은?
- A5 10
- B6 10
- C10 10
정답과 해설 보기
정답: A. 5 10
C 언어의 문자열은 문자의 나열 끝에 종단 문자 '\0'을 둔 것입니다. strlen은 처음부터 '\0' 바로 앞까지의 문자 수를 세므로 "hello"에서는 5가 됩니다. sizeof s는 배열 s 전체의 크기로, 선언한 요소 수인 10바이트입니다(나머지 요소에는 0이 들어갑니다). char s[] = "hello";처럼 요소 수를 생략하면 '\0'을 포함한 6바이트 배열이 됩니다.