There is a slight complication. A pointer contains an address (or, that is what it's value should be) but a pointer also has an address of it's own, where it's value is stored. The later is generally irrelevant, but this distinguishes the concept of "memory address" from "pointer".
Pointer arithmetic generally does not involve hex. Eg, to move thru a string:
Code:
#include <stdio.h>
int main() {
char string[]="hello world", *ptr=string;
int i;
while (ptr[0] != '\0') {
printf("%c",ptr[0]);
ptr++;
}
return 0;
}
Hex is just a form of notation. ++ is 1, which is 1 in dec and hex. If you wanted to skip to the end of string, you could use +=0xb, but most people would use +=11. Hex is used alot with mem address because the numbers are big and (possibly) because most programmers will recognize a hex number as a memory address (but that is not the only place it is used).