그냥 간단하게 생각해
배열은 컴파일 타임에 사이즈를 알 수 있으니까 sizeof 로 배열 전체 사이즈를 알 수 있고
포인터는 언제 어떻게 가리키는 곳이 변할지 모르기 때문에 컴파일 타임에 크기를 알 수 없어서 sizeof 에서 포인터와 포인터가 가리킬 수 있는 자료형의 크기만 알려주는 거라고
그리고
배열과 포인터를 완전히 별개 취급해버리면 자유가 제한되기 때문에 일부 묵시적 변환과 이상한 짓거리를 상당량 허용해준거라고
어렸을 때 걍 이렇게 생각했음
배열은 컴파일 타임에 사이즈를 알 수 있으니까 sizeof 로 배열 전체 사이즈를 알 수 있고
포인터는 언제 어떻게 가리키는 곳이 변할지 모르기 때문에 컴파일 타임에 크기를 알 수 없어서 sizeof 에서 포인터와 포인터가 가리킬 수 있는 자료형의 크기만 알려주는 거라고
그리고
배열과 포인터를 완전히 별개 취급해버리면 자유가 제한되기 때문에 일부 묵시적 변환과 이상한 짓거리를 상당량 허용해준거라고
어렸을 때 걍 이렇게 생각했음
문제는, 묵시적 변환의 디테일은 몸으로 배워야지 어떤 철학으로 한번에 해소가 되지 않는다는 거임
알고나면야 쉽겠지