강의

멘토링

커뮤니티

Inflearn Community Q&A

dhkdxo123896's profile image
dhkdxo123896

asked

(2026 Latest!) Pass the Information Processing Engineer Practical Exam in One Week

Pointer Manipulation and Exam Patterns (2. Pointer Increment/Decrement, Double Pointers)

포인터 출력 값 관련

Resolved

Written on

·

16

0

포인터 조작과 출제 패턴(2. 포인터 중가/감소, 이중 포인터) 9:40

 

포인터 값 관련하여 예를 들어

배열 값이 5, 7, 9, 11, 13일 경우

*(ptr_a + 1) 출력값에 대해서는 초기 인덱스 [0]의 값 5에서 포인터 위치를 1칸 오른쪽으로 이동 후 해당 값에 대한 것을 적는것으로 확인이 되는데 그러면 답은 7이 될 겁니다.

지금 강의를 보면 ++이나 +1에 대해서는 값을 더하기 1하는 것이 아닌 포인터 위치를 오른쪽으로 1칸 이동시키는 것만 나오는 것 같은데

값 자체를 1증가시크는 것과 포인터 위치를 1 오른쪽으로 이동하는 것 관련하여 어떻게 구분하는지 모르겠습니다.

pythonjavac정보처리기사정보처리산업기사

Answer 2

0

weekendcode님의 프로필 이미지
weekendcode
Instructor

안녕하세요.

값 자체를 증가시키는 것은 말 그대로 값을 가리키면 됩니다.

우리는 포인터 변수 앞에 *(별)을 붙이면 값이 된다고 배웠습니다.

 

질문하신 ptr_a는 그 자체가 주소입니다. 앞에 별이 안 붙었으니까요.

그래서 +1을 하면 다음 메모리 주소로 넘어가고, 그것을 전체 괄호로 해서 *을 씌웠으니

그 메모리 주소의 값을 가리키는 것입니다.

 

앞에 별이 있으면 그 공간의 값(정확히 말하자면 - 역참조)을 보시면 됩니다.

0

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

C 언어에서 포인터와 관련된 연산은 혼동을 줄 수 있는 자리입니다. 그런데, 포인터가 다루고 있는 것은 메모리의 주소이기 때문에 +++1 연산이 단순히 숫자를 더하는 것이 아니며, 이는 포인터 혹은 포인터가 가리키는 값에 영향을 줄 수 있습니다. 이에 대해 차근히 설명하겠습니다.

  1. ptr 이 가리키는 메모리 주소의 값 증가:

    • ++*ptr 같은 경우에는 ptr 이 가리키고 있는 값 자체를 증가시킵니다. 즉, ptr이 가리키고 있는 값을 1 증가시킵니다.

    • 예를 들어, arr가 [5, 7, 9, 11, 13]이라면, ptrarr 배열의 시작을 가리킬 때 ++*ptr을 사용하면 배열의 첫 번째 값이 6이 됩니다.

  2. 포인터 주소의 증가:

    • ptr++ 또는 *(ptr + 1)ptr이 가리키는 주소를 다음 주소로 이동시키는 연산입니다.

    • 이를 통해 ptr이 배열의 다음 요소를 가리키게 합니다. 예를 들어 *(ptr+a+1)ptr+a를 통해 ptr을 배열의 두 번째 위치로 이동시킨 후, 그 새 위치의 값을 참조하게 됩니다. 여기서 arr가 [5, 7, 9, 11, 13]이면 (*ptr_a + 1) 은 7을 반환합니다.

위 내용을 통해 (ptr+a+1)++*ptr 등 각각의 경우에서 포인터 주소와 포인터가 가리키는 값의 증감이 어떻게 작용되는지 이해하실 수 있을 것입니다.

관련된 개념을 더 익히기 원하시면, 다음 링크의 자료가 도움이 될 것입니다:

  • C언어 배열: 배열과 포인터의 동작 방식을 깊이 있게 설명합니다.
  • 포인터 증가 문제: 포인터 연산에 대한 개념과 그 차이를 다루고 있습니다.

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

dhkdxo12님의 프로필 이미지
dhkdxo12
Questioner

메모리 주소의 값 증가 시키는 연산은

++*ptr 같이 전위 연산자로 ++가 나오는 것만 있나요?

dhkdxo123896's profile image
dhkdxo123896

asked

Ask a question