inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

문자열 은 [가변]

해결된 질문

96

hj011007

작성한 질문수 5

0

문자열이 가변 이라고 말씀하셨는데

어떻게 받아들여야할지 잘 모르겠습니다.

무엇이 어떻게 변하는걸까요

c 컴퓨터-구조 assembly-language vc++

답변 2

1

널널한 개발자

음...예를 들어 내가 개발해야 하는 프로그램이 사용자에게

"좋아하는 명언 한 문장을 입력해주세요." 라고 요청했다면 개발자는 메모리를 얼마나 준비해야 할까요?

크기가 얼마가 됐은 아마도 고정길이 char 배열을 활용하게 될 것 입니다. 그러나 사용자가 입력하는 문장의 길이가 구체적으로 얼마가 될지는 코드를 작성하는 단계에서는 알 수가 없지요. 저마다 다른 문장일 가능성이 높고 길이가 제 각각이 될 테니 말입니다.

사용자가 입력한 문장(문자열)의 길이는 개발자 입장에서 늘 '가변(길이)' 입니다.

참고하시기 바랍니다. 😄

1

hj011007

답변 감사합니다. 이해에 도움이 되었습니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

hj011007님, C 프로그래밍 언어에서 “문자열이 가변”이라는 표현은 가변적인 데이터 조작이 가능하다는 것을 의미합니다. 이는 문자열을 저장하고 있는 메모리 공간의 내용을 변경할 수 있다는 뜻입니다.

다만, C 언어 내에서 문자열을 나타내는 방식은 두 가지가 있습니다: 하나는 문자 배열 그리고 또 다른 하나는 문자 포인터 입니다.
- 만약 문자 배열로 문자열을 선언하면, 해당 배열의 각 문자는 메모리 내에서 변경 가능합니다.
- 반면에, 리터럴(literal)로 선언된 문자열은 일반적으로 읽기 전용 메모리 영역에 저장되기 때문에 직접적으로 값을 변경할 수 없습니다.

C는 메모리 관리에서 매우 민감하며 프로그래머가 이를 직접 제어해야 하는 언어이기 때문에, 문자열을 조작할 때에는 주의가 필요합니다.

유사한 내용이 설명된 강의 질문이 존재하며, 다음의 링크를 참고하시길 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

scanf("%d\n") 의미

0

19

1

주소 연산자(&) 간접 지정자(*) 반대 개념

0

32

1

Virtual Memory, Memory, Memory mapping tables

0

50

1

샘플코드 출력 오류 발생 질문드립니다

0

62

2

값의 교환에 사용되는 변수의 위치.

0

87

2

메모리 비교에 관한 질문

0

80

2

문자열 Null

0

62

1

C, C++

0

87

2

문자열 입출력 코드 에러

0

60

2

선생님! 120화 2분 50초 질문입니다.

0

66

1

caller 가 메모리 할당 해제를 할 때의 문제점 질문

0

63

2

단축키 맞는지 여부 문의드립니다.

0

59

2

문자열을 사용하는 이중 포인터에 대하여 질문합니다

0

65

1

char 포인터 변수의 크기에 대하여 제가 이해한 것이 맞을까요

0

78

2

용어 설명 필요

0

56

2

stdin, stdout

0

70

2

필수 실습 (최댓값을 반환하는 함수)

0

92

2

아......ㅠㅠ

0

99

2

버퍼 내 엔터

0

71

1

2진수 뺄셈에서 carry-out

0

111

2

union 식별자는 실무에서 보통 어디에서 사용하나요?

0

79

2

필수실습문제 공부법 (진도 vs 복습)

0

103

2

예제파일 다운로드

0

78

2

Visial Studio Code 를 설치해서 사용해도 수업을 따라가는데 지장이 있나요?

0

118

3