Forse intendeva la differenza tra char come carattere e char * come stringa!

Se dichiari una variabile come char occupi la memoria per solo 1 byte:
codice:
char ch;
ch = 'A';
Se invece devi memorizzare una stringa, devi allocare la memoria per un insieme di caratteri, quindi un vettore.
Per passare quella stringa alla funzione ne devi passare il puntatore.
Esempio:
codice:
void f(char *str);

void main() {
// Dichiaro un array di caratteri per la stringa
    char s[30];
// Chiamo la funzione
    f(s);
}

void f (char *str) {
    cout << str;
}
Noterai che per trattare le stringhe come array di caratteri hai molte limitazioni (come l'uso dello spazio in memoria e l'assegnamento tramite operatore =), quindi con il C++ è stata creata la classe string.

Nel tuo codice:
codice:
void funzione(char *s, char c) 
{ 
while(*s) 
if (*s==c) return 1 
else s++; 
return 0; 
}
nell'istruzione "s++", NON incrementi il valore del carattere puntato da s, ma del suo puntatore!!

Per ulteriori info chiedi sulla discussione sui puntatori