Often programming language lectures and references have an illustration of computer memory as an array composed of individual cells. Each cell has an address, which is effectively the pointer and can be used to access it. I learned that 32 bit systems will have 4 byte pointers and then got curious what the (standard) capacity of those cells (they are pointing to) was. The most discrete unit of memory is a Memory Cell, but with 1 bit capacity, this does not really fit the bill.
That depends on the underlying architecture. Most machines today use byte addresses, but machines that addressed words (i.e. 16, 18, 32, even 36 bits) were reasonably common. If I recall correctly, most RISC machines were unable to address anything but words (but gave addresses in bytes). At least, such an address caused the CPU to fetch both words and snip out and assemble the piece wanted.
What your favorite language does above the machine's intrincacies, ask them. Often they will refuse to handle pointers that aren't aligned at some "machine natural boundary", like the size of a C
double, 8 bytes. Even on machines that have no penalty attached to non-aligned address acces.