The pointer itself will take up however much memory is taken up by a pointer of that type. The pointer will not be pointing to anything, so the only memory used at that point is just the memory to store the pointer.
If you have a pointer that never points to anything and you never use it, your compiler will probably just optimize it away.
If the value category of the pointer is prvalue (pure rvalue), typically it does not need any memory.
If the value category is lvalue, the observable behaviour of the program is "as-if" it is an object; that it occupies some area of memory.
If the value of the pointer is nullptr it dos not contain an address;
if not, the observable behaviour of the program is "as-if" it contains an address (points to some area in memory.)