One often needs to read from memory one byte at a time, like in this naive memcpy() implementation:
memcpy()
void *memcpy(void *dest, const void *src, si
It depends on what you want to store in the char. A signed char gives you a range from -127 to 127 whereas an unsigned char ranges from 0 to 255.
For pointer arithmetic it doesn't matter.