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,515
510
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:

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