Pointer data types

Why does pointer's declaraction needs an identified data types? If its ok (what I'm currently thinking) if not? I have a feeling that it has many reasons but my brain hurts if I think of it.
Data type is needed that to perform the pointer arithmetic. For example what value will the pointer have after increment?


Or what will be the value of the difference of two poinetrs?

p - q
Also, without a type how would it know how much data to read when dereferencing?
Topic archived. No new replies allowed.