작성
·
291
·
수정됨
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]의 자료형이 다르다고 하셨던 거 같은데 맞나요?
그 때 답변을 봐도 제가 이해한 게 맞는 건지 확신이 안 드네요.
답변 1
3
안녕하세요, 답변 도우미 Soobak 입니다.
네, 정확하게 이해하고 계십니다!!
동일한 주소를 가리키는 포인터들이라도, 각 포인터의 자료형(타입)에 대한 차이 때문에 포인터 연산의 결과가 달라지게 됩니다.
잘 이해하고 계십니다!
추가적으로, 저는 선생님이 아니므로, 질문 답변 도우미라고 불러주셨으면 좋겠습니다.
햇갈리셨던 개념을 잘 이해하신 것 같아서 다행이네요.
좋은 질문 감사드립니다.
아이고, 마음은 너무 감사드립니다. 🥰
오해의 소지가 있을 수 있으니 조심스럽게 부탁을 드려보았는데, 재미있게 답글 달아주셔서 감사드립니다.
수박님이라고 불러주셔도 기분 좋을 것 같습니다. 🫡🍉😁
질문자님의 감사한 마음 덕분에 행복해지고 뿌듯해지네요.
진심으로 감사합니다.
행복한 밤 되시길 바랍니다!
궁금증이 있으시면 또 편하게 질문해주세요!
매번 좋은 답변을 달아주시는 게 감사해서 존칭으로 부르고 싶어서 그렇게 한건데 ㅎㅎ..
앞으로는 그냥 수박님이라고 부르겠습니다