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
 

Entra

oppure Accedi utilizzando

Hot: E3 2021, chi ti è piaciuto di più?

  • Ubisoft

    Voti: 13 15.5%
  • Gearbox

    Voti: 1 1.2%
  • Xbox & Bethesda

    Voti: 59 70.2%
  • Square Enix

    Voti: 3 3.6%
  • Capcom

    Voti: 5 6.0%
  • Nintendo

    Voti: 13 15.5%
  • Altro (Specificare)

    Voti: 6 7.1%

Discussioni Simili