ん〜、以下のrfuncとpfuncの違いは何なのでしょうか?
それと、rfunc( aaa ) と記述できない事と何か関係ありますか?

#include <iostream>

void rfunc( char *& rp ) {
rp[0] = 'a';
}

void pfunc( char * pp ) {
pp[0] = 'b';
}

int
main( int argc, char **argv ) {
char aaa[100];
char *bbb;
bbb = aaa;
rfunc( bbb );
std::cout << aaa[0] << std::endl;
pfunc( bbb );
std::cout << aaa[0] << std::endl;

return 0;
}