• 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

문자열은 그자체로 메모리를준다.

24.06.29 14:33 작성 조회수 53

0

  • Char*s = & helli.world
  • 라고 안한다
  • 라는말에서 &가 뭔가요.
  • 말씀이 이해가 가질않네요.
강의 열심히 수강중인데 너무 휙휙 넘어가서 이해하기가 상당히 어렵습니다. 어떻게 공부해야하나요?더불어 교재나 교안같은걸 다운받아 복습할수있으면 좋겠어요.
  • 이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요.
  • 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다.
  • 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정)
  • 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요.

나름대로 꼼꼼이 촬영했다고 생각했지만, 좀 빠른 편으로 느껴지신다니 안타까운 마음과 함께 최선을 다해 답변 드립니다.

프로그래밍 언어라는 것이 모든 것을 자세히 설명하려면 전공 수준이 되어버리고,

언어 3개를 모두 그렇게 할 수 없는 점 양해 부탁드립니다.

 

사실 "메모리"는 직접 프로그래밍해보고 디버깅을 해보지 않는 한 확 와닿기 어려운 개념입니다.

모든 변수는 메모리 주소를 가지고, 그 주소부터 본인의 데이터 크기만큼을 차지합니다.

 

원래 C언어에서 메모리 주소를 가져오려면 &라는 키워드를 사용합니다.

 

예를 들어 숫자형태를 봅시다.

int a = 3;

int* ptr = &a; 이렇게 사용해야 합니다.

(a의 변수에 메모리 주소를 꺼내와서 ptr이라는 포인터 변수에 넣어라)

 

하지만 문자열과 배열은 그렇게 하지 않습니다.

앞에 &를 붙이지 않습니다.

배열과 문자열을 할당받은 변수의 경우 포인터 변수에 &없이 그냥 그대로 할당합니다.

 

그것은 언어에서 그렇게 사용하도록 정의해둔 것이라 단순 암기가 필요합니다.

언어를 만드는 사람이 이런 디테일한 것을 통일해두면 좋겠지만, 나름 사정이 있었지 않겠습니까? 

 

덧붙여 기출문제, 변형 섹터를 제외하고는 별도의 교재는 준비되어 있지 않습니다.

곧 실기 시험이 있어 다른 영상과 급한 이론에 대한 설명을 먼저 완료한 이후에 고려해보도록 하겠습니다.

추가 질문이 있으면 댓글로 부탁드립니다.

 

감사합니다.

채널톡 아이콘