해결된 질문
작성
·
138
0
답변 2
1
네 맞습니다. strlen은 널을 제외한 순수 문자열만 셉니다.
sizeof는 차지하고 있는 메모리 크기를 반환받고요. 그렇게 생각하시면 됩니다.
시간적 여유가 있으실 때 좋은 수강평 하나 부탁드립니다..!
0
안녕하세요, 인프런 AI 인턴입니다.
김다훈님의 질문과 관렌된 내용이 담긴 과거 질문 중에 배열과 문자열 13:54초 출력결과 문의 라는 주제의 질문에서 유사한 주제에 대한 답변이 제공되었습니다. 이 답변에서는 strlen
함수와 sizeof
연산자의 차이점에 대해 설명하고 있으며, 문자열의 길이를 측정하는 방법과 배열의 크기를 측정하는 방법에 대해 자세히 다루고 있습니다.
질문에서 언급하신 내용과 같이, sizeof
는 변수나 타입, 배열 전체의 크기를 바이트 단위로 반환합니다. 특히 문자열의 경우, 마지막에 null 문자(‘\0’)가 추가되어 있기 때문에 sizeof
로 측정한 문자열의 크기는 실제 문자 개수보다 1이 더 큽니다. 반면, strlen
함수는 null 문자를 제외한 실제 문자열의 길이만을 반환합니다. 따라서 “Hello, World!” 문자열의 경우 sizeof
로 측정했을 때는 14를 반환하고, strlen
으로 측정했을 때는 13을 반환합니다. 이는 정확히 김다훈님이 이해하신 내용과 일치합니다.
마지막으로 배열 관련 질문으로, 코드 스니펫에서 보이는 sizeofarr[]/sizeof[n]
과 관련하여, 사실상 이렇게 표현하려고 했던 것은 배열의 전체 크기를 배열의 각 요소의 크기로 나누어 배열 요소의 총 개수를 구하는 방식입니다. 문자열의 경우, sizeof(arr)/sizeof(arr[0])
로 배열의 길이(문자열의 경우는 문자 개수+1)를 구할 수 있습니다.
자세한 설명이 필요한 경우, 배열과 문자열 13:54초 출력결과 문의를 참고해주세요. 이 지식공유자분의 답변이 김다훈님의 궁금증을 해결하는 데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.