• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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]의 자료형이 다르다고 하셨던 거 같은데 맞나요?

그 때 답변을 봐도 제가 이해한 게 맞는 건지 확신이 안 드네요.

답변 1

답변을 작성해보세요.

3

Soobak님의 프로필

Soobak

2024.01.21

안녕하세요, 답변 도우미 Soobak 입니다.

 

네, 정확하게 이해하고 계십니다!!
동일한 주소를 가리키는 포인터들이라도, 각 포인터의 자료형(타입)에 대한 차이 때문에 포인터 연산의 결과가 달라지게 됩니다.

잘 이해하고 계십니다!

 

추가적으로, 저는 선생님이 아니므로, 질문 답변 도우미라고 불러주셨으면 좋겠습니다.
햇갈리셨던 개념을 잘 이해하신 것 같아서 다행이네요.
좋은 질문 감사드립니다.

매번 좋은 답변을 달아주시는 게 감사해서 존칭으로 부르고 싶어서 그렇게 한건데 ㅎㅎ..

앞으로는 그냥 수박님이라고 부르겠습니다

Soobak님의 프로필

Soobak

2024.01.21

아이고, 마음은 너무 감사드립니다. 🥰

오해의 소지가 있을 수 있으니 조심스럽게 부탁을 드려보았는데, 재미있게 답글 달아주셔서 감사드립니다.
수박님이라고 불러주셔도 기분 좋을 것 같습니다. 🫡🍉😁
질문자님의 감사한 마음 덕분에 행복해지고 뿌듯해지네요.
진심으로 감사합니다.

행복한 밤 되시길 바랍니다!
궁금증이 있으시면 또 편하게 질문해주세요!