Цитата(John851 @ Jul 7 2010, 00:25)

void func (char &arg1, char &arg2) {
.....
arg1=val1;
arg2=val2;
}
но компилятор такого не принял...
Включите режим С++, и компилятор все примет. Это будет
передача по ссылке. Синтаксически все ровно так же, как и при передаче по значению, но реально передается ссылка, и значения arg1, arg2 будут после вызова функции соответствовать тому, что им было присвоено внутри функции. И не надо тут никаких разыменовываний и возни с адресами. Только надо помнить, что ссылки - это плюсовые фичи, в голом С их нет. Ну, и не лишне про них почитать, дабы иметь представление, что это такое, как работает и с чем едят.

Еще вариант для возврата нескольких значений из функции - через структуру. Т.е. чтобы функция возвращала структуру. Но это может оказаться менее выгодным с точки зрения накладных расходов (дополнительное копирование).
«Отыщи всему начало, и ты многое поймёшь» К. Прутков