작성
·
173
1
a[0][0] = **arr 이라고 소개하셨는데
arr은 배열의 시작주소잖아요?
그러니까 *arr하면 주소의 값을 참조해서 a[0][0] 아닌가요?
왜 이중포인터로 들어가야 값을 참조하나요......
답변 1
3
어떤 이차원배열 arr[i][j] 에 대해서,
*arr 는 arr[0][j] 의 첫번째 원소를 가리키는 '포인터'가 됩니다.
arr[0] 이렇게 선언해준거랑 똑같습니다.
따라서 dereference를 두 번 해주어야합니다.
-----------------
arr[i]
*(arr+i) 입니다.
arr[i][j] 는
*(*(arr+i)+j) 입니다.
저는 생각할 때 이렇게 생각합니다. 저도 헷갈려서 포스트잇에 적어놓고 붙여놨어요.