Re: 63.7 삼중 포인터는 왜 필요할까요?
, 도장_ 관리자님이 작성배열의 []는 C 언어 내부적으로 *로 변환됩니다.
자세한 내용은 이전 답변을 참고하세요.
https://dojang.io/mod/forum/discuss.php?d=699&parent=1577
2차원 배열은 **이고, 2차원 배열을 주소로 전달하고 싶다면 ***이 됩니다.
3차원 배열은 ***이고, 3차원 배열을 주소로 전달하고 싶다면 ****이 됩니다.
실무에서 ***이나 ****이 잘 안 보이는 이유는 ADT(Abstract Data Type, 데이터 추상화)를 사용하기 때문입니다.
typedef double 3dmatrix[30][30][20];
3dmatrix m; // ***
3dmatrix *ptr = &m; // ****
실제로는 이렇게 추상화해서 쓰기 때문에 3차원 배열에 대한 4중 포인터가 단일 포인터로 보일 뿐입니다.
prop_type ***proptable;
...
prop_type prop = proptable[c>>14][c>>7&0x7f][c&0x7f];
유니코드에서는 이렇게 문자 테이블을 씁니다.
다단 테이블을 쓰면 1차, 2차에 속하는 데이터 전체를 선택할 수 있습니다.