인프런 커뮤니티 질문&답변

semu0523님의 프로필 이미지
semu0523

작성한 질문수

독하게 시작하는 C 프로그래밍

섹션 13 배열의 기본 문법

해결된 질문

작성

·

126

0

안녕하세요 강사님

섹션 13 배열의 기본 문법 관련해서 질문이 있습니다

강의에서 "Hello"이라는 문자의 배열의 요소를 6개라고 하셨는데, 이것은 Hello라는 문자는 알파벳 5개지만 문자의 배열(문자열)의 끝에는 항상 null이 들어가서 6개라고 말씀하신걸까요?

그렇다면 모든 문자열의 요소 개수 = 문자열의 알파벳 개수 +1(null)라고 생각하면 될까요?

 

또한 문자열 상수는 이름이 없는 문자의 배열이라고 하셨는데 이름이 없는 문자의 배열이라는 것이 이해가 잘 가지 않습니다. 예를 들어 "Hello"는 문자열이고 변하지 않는 상수가 맞으니깐 문자열 상수라는 것은 알겠는데 이름이 없다는게 무슨 의미일까요?

 

감사합니다.

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

네, 맞습니다. 문자열은 기본적으로 null로 끝나도록 메모리에 저장되어 있습니다. char 배열이나 문자열 상수같은 것들이 모두 이런 구조로 되어 있습니다.

그리고 char 배열 선언의 일반적인 코드는 아래와 같습니다.

char szBuffer[128];

그런데 여기서 이름을 빼면

char [128]

이 되고 읽기 전용으로 선언한다면

const char [128]

이 됩니다. 그리고 이 형식이 소위 문자열 상수의 형식 입니다.

C언어에서 모든 변수들은 이름으로 접근합니다. 그러나 문자열 상수는 이름이 아니라 겹따옴표를 활용해 기술하며 별도로 이름을 부여하지는 않습니다. 첫 번째 예제인 HelloWorld 예제만 하더라도 "Hello. World"라는 문자열을 사용하는데 이름이 있지는 않습니다. 참고하시기 바랍니다. 😄

semu0523님의 프로필 이미지
semu0523

작성한 질문수

질문하기