안녕하세요 길벗수험서 운영팀입니다.
106쪽의 예제를 말씀하신 것 같아 이걸로 설명드리겠습니다.
먼저 C와 Java의 문자 배열 처리는 동일합니다.
다만 String 객체의 경우 널문자를 고려하지 않습니다. 애초에 얘는 문자배열도 아니죠.
Java만의 문자열 처리를 위한 특수한 객체입니다.
이 객체에서 문자열의 길이를 뽑으라고 하는 경우, 정확히 문자열의 개수가 반환됩니다.
또한 106쪽의 예제의 문자 배열에는 문자열이 저장된 것이 아닌 배열의 각 요소에 문자가 하나씩 하나씩 저장된 것입니다.
예를 들어,
char a[] = "abc";
이 코드의 a배열은 4개의 요소를 갖습니다. a, b, c, NULL
char a[4];
a[0] = 'a', a[1] = 'b', a[2] = 'c';
위 코드는 어떤가요. a[3]에 널이 들어갔을까요? a[3]은 어떠한 값도 들어가지 않습니다.
문자열의 끝을 의미하는 널문자가 자동으로 들어가기 위해서는 [문자열]을 입력하는 코드가 존재해야 합니다. 106쪽의 예제의 경우 문자배열 st에 문자열을 넣는 것이 아닌 위의 두번째 코드처럼 각 요소에 값을 넣는 방식을 사용하기 때문에 널문자가 들어갈 이유가 없죠.
행복한 하루되세요 :)
-
관리자2020-07-03 10:57:24
안녕하세요 길벗수험서 운영팀입니다.
106쪽의 예제를 말씀하신 것 같아 이걸로 설명드리겠습니다.
먼저 C와 Java의 문자 배열 처리는 동일합니다.
다만 String 객체의 경우 널문자를 고려하지 않습니다. 애초에 얘는 문자배열도 아니죠.
Java만의 문자열 처리를 위한 특수한 객체입니다.
이 객체에서 문자열의 길이를 뽑으라고 하는 경우, 정확히 문자열의 개수가 반환됩니다.
또한 106쪽의 예제의 문자 배열에는 문자열이 저장된 것이 아닌 배열의 각 요소에 문자가 하나씩 하나씩 저장된 것입니다.
예를 들어,
char a[] = "abc";
이 코드의 a배열은 4개의 요소를 갖습니다. a, b, c, NULL
char a[4];
a[0] = 'a', a[1] = 'b', a[2] = 'c';
위 코드는 어떤가요. a[3]에 널이 들어갔을까요? a[3]은 어떠한 값도 들어가지 않습니다.
문자열의 끝을 의미하는 널문자가 자동으로 들어가기 위해서는 [문자열]을 입력하는 코드가 존재해야 합니다. 106쪽의 예제의 경우 문자배열 st에 문자열을 넣는 것이 아닌 위의 두번째 코드처럼 각 요소에 값을 넣는 방식을 사용하기 때문에 널문자가 들어갈 이유가 없죠.
행복한 하루되세요 :)