Perche' dovresti avere questa limitazione?

Puoi allocare dinamicamente un intero e usare il puntatore per gestirlo ...

char* e' un puntatore ad un dato di tipo char .... quest'ultimo e' il dato.

I tuoi sono dubbi da C e non da C++ ... ripassa quelle parti ...