-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
4분 45초경 질문
24.01.20 23:51 작성 24.01.21 21:09 수정 조회수 191
2
arr과 arr[0]모두 arr[0][0]을 가리키지만
arr의 타입은 int (*)[3]이고
arr[0]의 타입은 int* 이다.
따라서 arr + 1은 &arr[0] + 1이고
arr[0] + 1은 &arr[0][0] + 1이다.
이게 맞나요?
arr과 arr[0] 모두 arr[0][0]을 가리키는데
포인터 산술 연산을 하면 결과가 다르게 나와서 헷갈렸는데
수박 선생님이 전에 답변해 주신 걸 보고 나름 이해를 해봤어요
선생님이 아마 arr과 arr[0]의 자료형이 다르다고 하셨던 거 같은데 맞나요?
그 때 답변을 봐도 제가 이해한 게 맞는 건지 확신이 안 드네요.
답변을 작성해보세요.
3
Soobak
2024.01.21
안녕하세요, 답변 도우미 Soobak 입니다.
네, 정확하게 이해하고 계십니다!!
동일한 주소를 가리키는 포인터들이라도, 각 포인터의 자료형(타입)에 대한 차이 때문에 포인터 연산의 결과가 달라지게 됩니다.
잘 이해하고 계십니다!
추가적으로, 저는 선생님이 아니므로, 질문 답변 도우미라고 불러주셨으면 좋겠습니다.
햇갈리셨던 개념을 잘 이해하신 것 같아서 다행이네요.
좋은 질문 감사드립니다.
답변 1