그런데 그렇게 설명을 안하면 잘못된 오개념에 빠지게 되어서 엄청 고생했음. 내 경우에는 다차원 배열이 특수한 무언가가 있는 줄 알았고 배열은 그냥 포인터 아님? 다차원 배열 형식에서 첨자 연산자를 일부만 사용했을때는 무슨 타입이 나올까? 되게 고민 많이 했음. 그런데 C는 사실 일반화할 수 있는 언어가 아니더라고. 정수형 int의 크기가 명확히 정의되지 않는것도 있고 포인터형의 크기도 항상 같은게 아니지. 그냥 포인터는 정수인데 조금 특별한 정수라고 이해하면 정말 편하긴 하겠지만 그게 잠재적으로 형 안정성에 큰 문제를 일으킬 수도 있고 포인터를 다룬다는 것은 항상 주의해야 하므로 나는 언제나 포인터는 타입을 가리킨다고 추상화해야만 했어. 그렇게 하지 않으면 포인터에 이상한 값을 집어넣고 강제 형변환시키는 일도 일어날테니까.


아무튼 진짜 초보자에게 쉬운 설명이라고 하면 그냥 정수형이 맞다. 원래부터 포인터 문법이 추가되기 전에 정수형을 사실상의 주소값으로 다루었고 그 흔적이 C에 남은 것이니까. 그런데 결국 처음에는 쉬운 설명일지 몰라도 나중에는 실수를 많이 할지도 모름. (포인터에 대한 개념이 제대로 정립되지 않아서 코딩할때 범용 포인터를 서로 바꾸는 함수의 인자가 void ** 였던 적도 있음.)


실수 그딴거 상관없고 나중에 C 손절할 사람들이라면 조금 특별한 정수형이라고만 생각해... 나는 그게 안되서 계속 C에 남아있을 수밖에 없게 된거고.