포인터 출력 값 관련
포인터 조작과 출제 패턴(2. 포인터 중가/감소, 이중 포인터) 9:40
포인터 값 관련하여 예를 들어
배열 값이 5, 7, 9, 11, 13일 경우
*(ptr_a + 1) 출력값에 대해서는 초기 인덱스 [0]의 값 5에서 포인터 위치를 1칸 오른쪽으로 이동 후 해당 값에 대한 것을 적는것으로 확인이 되는데 그러면 답은 7이 될 겁니다.
지금 강의를 보면 ++이나 +1에 대해서는 값을 더하기 1하는 것이 아닌 포인터 위치를 오른쪽으로 1칸 이동시키는 것만 나오는 것 같은데
값 자체를 1증가시크는 것과 포인터 위치를 1 오른쪽으로 이동하는 것 관련하여 어떻게 구분하는지 모르겠습니다.
답변 2
0
안녕하세요.
값 자체를 증가시키는 것은 말 그대로 값을 가리키면 됩니다.
우리는 포인터 변수 앞에 *(별)을 붙이면 값이 된다고 배웠습니다.
질문하신 ptr_a는 그 자체가 주소입니다. 앞에 별이 안 붙었으니까요.
그래서 +1을 하면 다음 메모리 주소로 넘어가고, 그것을 전체 괄호로 해서 *을 씌웠으니
그 메모리 주소의 값을 가리키는 것입니다.
앞에 별이 있으면 그 공간의 값(정확히 말하자면 - 역참조)을 보시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. dhkdxo12님.
C 언어에서 포인터와 관련된 연산은 혼동을 줄 수 있는 자리입니다. 그런데, 포인터가 다루고 있는 것은 메모리의 주소이기 때문에 ++나 +1 연산이 단순히 숫자를 더하는 것이 아니며, 이는 포인터 혹은 포인터가 가리키는 값에 영향을 줄 수 있습니다. 이에 대해 차근히 설명하겠습니다.
ptr이 가리키는 메모리 주소의 값 증가:++*ptr같은 경우에는ptr이 가리키고 있는 값 자체를 증가시킵니다. 즉,ptr이 가리키고 있는 값을 1 증가시킵니다.예를 들어,
arr가 [5, 7, 9, 11, 13]이라면,ptr이arr배열의 시작을 가리킬 때++*ptr을 사용하면 배열의 첫 번째 값이 6이 됩니다.
포인터 주소의 증가:
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 등 각각의 경우에서 포인터 주소와 포인터가 가리키는 값의 증감이 어떻게 작용되는지 이해하실 수 있을 것입니다.
관련된 개념을 더 익히기 원하시면, 다음 링크의 자료가 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
51
2
26년 1회 실기 해설 강의
0
68
2
53번 4-1 자료 오류 있는 것 같습니다.
0
73
2
7번문제
0
60
2
C언어 변형문제 9번문제 Pdf 수정요청
0
48
2
메서드 오버드라드
0
51
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
90
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
49
2
25년 2회 기출 5:40 질문입니다.
0
43
2
모의고사1회 3번 파이썬문제
0
75
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
32
2
28:40
0
34
2
C : 언어 배열과 문자열 수업자료
0
31
2
파이썬 리스트, 딕셔너리 질문
0
43
2
모의고사 관련 질문 건
1
69
3
자료 내용 오류
0
64
2
정적 변수, 정적 메서드(static) v2
0
51
2
v1.2 와 v0.91 PDF
0
104
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
60
3





