Firstly, a data pointer is allowed to be a different size from a function pointer (although in most platforms they are the same size).
Secondly, what he said is that pointers are not just addresses, but typed addresses that know what type they're pointing at.