It depends.
If you're writing a application that will run on top of a operating system, that is, in user mode and the operating system uses virtual memory, it will point to a virtual address (or rather, it will point to a physical address but not the same physical address that will in fact be used).
If you're using an operating system without virtual memory or if you're writing (parts) of the kernel code it will point to the physical address.