Salve, mi sapreste spiegare un momento questo codice?:
codice:
#include <stdio.h>
#include <string.h>
#include <conio.h>
void converge(char *targ, char *src);
int main()
{
char target[80]= "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
converge(target, "Prova dell'uso di converge().");
printf("Stringa finale: %s\n", target);
getch();
return 0;
}
void converge(char *targ, char *src)
{
int i, j;
printf("%s\n", targ);
for(i=0, j=strlen(src); i<j; i++, j--) {
targ[i] = src[i];
targ[j] = src[j];
printf("%s\n", targ);
}
}
In effetti i miei probelmi sorgono quando si parla di procedure...allora, vine dichiarato il prototipo di una procedura, che è il seguente:
codice:
void converge(char *targ, char *src);
dove converge ha come parametri due variabili puntatori a un tipo carattere
Successivamente nel main() viene richiamata la procedura converge(), e nella sua chiamata assistiamo alla presenza di due parametri, cioè target e "Prova dell'suo di converge()." adesso nn capisco una cosa: io ho dichiarato la stringa target[80], poi perchè quando la uso come parametro della procedura, scrivo solo target senza specificarne le dimensioni?
Poi nel corpo della funzione c'è l'istruzione printf("%s\n", targ);
che visualizza il contenuto di target che è una stringa...ma come è possibile? cioè la stringa target è puntata dalla variabile puntatore targ scrivendo in questo modo?
Poi perchè dopo scrive targ[i]=src[i] se nn le abbiamo dichiarate come vettori?