PROBLEMA Programma puntatori e funzioni

thity92

Nuovo Utente
4
0
Ciao volevo proporvi questo programma di un tema d'esame della facolta di Ingegneria di milano!
Io non ho capito due cose come fa a stampare la parola derby
e nel primo printf cosa vogliono dire i due punti !! vicino al %c
grazie mille!


int main() {
char *p, s[6] = "DBPAY";
int a = 3;
p = s;
printf("%c", *(p++));
f( &p, a );
printf("%c !!", *p);
return 0;
}

void f(char ** c, int x) {
void *z = &z;
if( strlen(*c) < 2 )
return;
printf( "%c", (**c)+x );
(*c)++;
f( c, --x );
return;
}
 

Tinwor

Utente Attivo
932
143
E' una semplice applicazione sull' aritmetica dei puntatori. Ti do tre consigli per capire l' applicazione:
1)printf(p++); stampa prima p e poi incrementa il suo valore. printf(++p) incrementa prima la variabile e poi stampa il suo valore
2)Utilizza il debugger
3)Il doppio bang in questo caso è solamente !! infatti l' applicazione stamperà "DERBY !!". In C++ il double bang è un trucco per convertire in bool delle condizioni che nativamente non lo sono
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili