Можно ли передать в функцию ССЫЛКУ на строку
Можно и делается синтаксически это по-другому
void sz(char &buf)
{
printf("function sz=%c %s %p \n",buf,&buf,&buf);
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char *sz1="123456789";
printf("sz1=%c %s %p \n",*sz1,sz1,sz1);
sz(*sz1);
sz(sz1[0]);
char sz2[]="abcdefg";
printf("sz2=%c %s %p \n",*sz2,sz2,sz2);
sz((char &)sz2); // а тут если не указать (char &) получим :
// "cannot convert parameter 1 from 'char [10]' to 'char &'"
sz(sz2[0]);
вывод:
sz1=1 123456789 01195898
function sz=1 123456789 01195898
function sz=1 123456789 01195898
sz2=a abcdefg 0043F9DC
function sz=a abcdefg 0043F9DC
function sz=a abcdefg 0043F9DC