-
[C] 문자열 저장 : 메모리구조언어/C 2024. 5. 30. 13:04
문제 먼저 풀고 오세요.
C 언어 계열에서 문자열(string)을 메모리에 저장하는 방식에 대한 설명.1번
문자열은 메모리에 저장될 때 일반적으로 문자 배열로 표현됩니다. 문자열은 연속된 메모리 공간에 문자들이 저장되며, 문자열의 끝을 나타내는 특별한 문자로 null 문자('\0')가 사용됩니다.
예를 들어, "Hello"라는 문자열을 저장하려면 다음과 같이 문자 배열을 선언 :
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; char str[] = "Hello";
여기서 중요한 점은 문자열의 끝에 null 문자('\0')가 자동으로 추가된다는 것입니다. 이 null 문자는 문자열의 끝을 나타내며, C 언어에서 문자열 처리 함수가 문자열의 끝을 판단하는 데 사용됩니다.
따라서 1번 정답.
2번
문자열은 문자(char)의 배열로 표현되며, 각 문자는 연속된 메모리 위치에 저장됩니다. 이러한 특성으로 인해 문자열을 순회하거나 특정 인덱스의 문자에 접근하기가 쉽습니다. 예를 들어, "Hello"라는 문자열을 저장할 때, 메모리에는 'H', 'e', 'l', 'l', 'o'가 차례대로 저장되며, 각 문자는 연속된 메모리 주소를 가집니다. 마지막으로 null 문자('\0')가 추가되어 문자열의 끝을 나타냅니다.
따라서 2번 정답.
3번
문자열은 문자열의 끝을 나타내기 위해 널 문자('\0')로 끝나는 문자열입니다.
따라서 문자열이 포함하는 메모리 공간은 문자 개수에 각 문자의 크기를 곱한 값에 널 문자를 추가하기 위한 1바이트 크기를 더한 것과 같습니다.
예를 들어, "Hello"라는 문자열을 저장하려면 다섯 개의 문자('H', 'e', 'l', 'l', 'o')와 널 종단 문자('\0')가 필요합니다. 따라서 문자열 "Hello"는 총 6바이트의 메모리를 차지합니다.
따라서 3번 정답.
4번
C 언어에서 문자열은 사실상 문자(char) 배열로 표현됩니다. 따라서 문자열은 문자 배열과 동일한 방식으로 선언, 초기화 및 처리할 수 있습니다.
따라서 4번 정답.
5번
무조건 에러가 나는 것은 아니므로 틀렸음. 적절한 문자열 처리, 문자열의 인코딩을 올바르게 처리하면 됨.
따라서 5번 오답.
'언어 > C' 카테고리의 다른 글
[C] 포인터 (0) 2024.10.05 [C] boostcamp 코딩테스트 유형 Q.5 (0) 2024.05.30 [C] boostcamp 코딩테스트 유형 Q.4 (0) 2024.05.30 [C] while문으로 1부터 100구하기, 반복조건 count <101일까? count == 100일까? (0) 2024.05.30