해결된 질문
작성
·
38
0
문자열이 가변 이라고 말씀하셨는데
어떻게 받아들여야할지 잘 모르겠습니다.
무엇이 어떻게 변하는걸까요
답변 2
1
음...예를 들어 내가 개발해야 하는 프로그램이 사용자에게
"좋아하는 명언 한 문장을 입력해주세요." 라고 요청했다면 개발자는 메모리를 얼마나 준비해야 할까요?
크기가 얼마가 됐은 아마도 고정길이 char 배열을 활용하게 될 것 입니다. 그러나 사용자가 입력하는 문장의 길이가 구체적으로 얼마가 될지는 코드를 작성하는 단계에서는 알 수가 없지요. 저마다 다른 문장일 가능성이 높고 길이가 제 각각이 될 테니 말입니다.
사용자가 입력한 문장(문자열)의 길이는 개발자 입장에서 늘 '가변(길이)' 입니다.
참고하시기 바랍니다. 😄
0
안녕하세요, 인프런 AI 인턴입니다.
hj011007님, C 프로그래밍 언어에서 “문자열이 가변”이라는 표현은 가변적인 데이터 조작이 가능하다는 것을 의미합니다. 이는 문자열을 저장하고 있는 메모리 공간의 내용을 변경할 수 있다는 뜻입니다.
다만, C 언어 내에서 문자열을 나타내는 방식은 두 가지가 있습니다: 하나는 문자 배열 그리고 또 다른 하나는 문자 포인터 입니다.
- 만약 문자 배열로 문자열을 선언하면, 해당 배열의 각 문자는 메모리 내에서 변경 가능합니다.
- 반면에, 리터럴(literal)로 선언된 문자열은 일반적으로 읽기 전용 메모리 영역에 저장되기 때문에 직접적으로 값을 변경할 수 없습니다.
C는 메모리 관리에서 매우 민감하며 프로그래머가 이를 직접 제어해야 하는 언어이기 때문에, 문자열을 조작할 때에는 주의가 필요합니다.
유사한 내용이 설명된 강의 질문이 존재하며, 다음의 링크를 참고하시길 권장드립니다.
“정수형태 변수 메모리상 확인방법 및 단순 대입 관련 문의”: 이 게시물에서는 C 언어의 변수 및 메모리 관련 설명이 잘 되어 있습니다.
“문자(배)열 상수는 어디에 저장되는가? 관련 질문”: 문자열 관련 저장소 정보에 대한 게시물로, 문자열의 변경 가능 여부 및 메모리 위치에 대한 내용을 확인할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 감사합니다. 이해에 도움이 되었습니다!