Chiarimento puntatori C

thity92

Nuovo Utente
4
0
Ciao ragazzi , dato il seguente programma:

int f(int i,int*v,char *p){
int x;
if(strlen(p) >0) {
x=f(++i,c,++p);
printf("%c",*(--p)-*(v+(--i)) );
}
else
printf("!");
return x;
}

int main (){
int v[4] = {3,1,2,4}, a =3124;
char k [5] ="hogf";
char *p=k;
a=f(0,v,p);
return 0;
}

Non capisco alcune cose 1) Il puntatore p dichiarato nel main , punta il primo elemento di k ovvero h?
2)inoltre nella funzione f non capisco come fa a stampare ! BENE

Vi prego di darmi qualche delucidazione in merito
grazie mille
 

LS1987

Utente Èlite
3,530
516
CPU
Phenom II X 4 945 @ 3 GHz
Scheda Madre
Asus M3A78-CM
HDD
Seagate 500 GB
RAM
4096 MB DDR2
GPU
nVidia GeForce 9800 GT
Audio
Integrato
Monitor
HP 21.5" 16:9
PSU
Cooler Master

signore del tempo

Utente Èlite
3,228
491
CPU
Intel Core i5 4670K
Scheda Madre
Asus Z87-Plus
HDD
WD Caviar Green 500GB
RAM
G.Skill Ares 2x4GB 1600MHz
GPU
Sapphire 7850 1GB @ 1050MHz
Audio
Integrata
Monitor
Acer V193w
PSU
XFX ProSeries 550W Core Edition
Case
CM HAF 912 plus
OS
ArchLinux + KDE - Windows 10
È una chiamata ricorsiva che incrementa il puntatore fino a che la lunghezza della stringa puntata sia > 0. v e p vengono man mano decrementati dalla fine verso l'inizio e la sottrazione dà risultato al messaggio.
 
Ultima modifica:

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

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili