Sul mio libro ho trovato questo piccolo programmino semplice in C (non c'è soluzione sul libro) e non riesco a capire come sia possibile che la funzione stringReverse riesca a scrivere la stringa all'indietro. Come è possibile? E che significa &strArray? Sul libro non dà alcuna spiegazione sull'operatore & messo prima dell'array. L'unica cosa che non riesco a capire è il funzionamento di stringReverse. Ho provato a riscrivere il programma utilizzando il for e mettendo un contatore che conta in modo discendente e ci sono riuscito. Ma qui la funzione è ricorsiva.... aiutatemi per favore :(
C:
#include <stdio.h>
#define SIZE 30
void stringReverse(char strArray[]);
int main(void)
{
char strArray[SIZE] = "Print this string backward.";
for (unsigned int loop = 0; loop < SIZE; ++loop) {
printf("%c", strArray[loop]);
}
puts("");
stringReverse(strArray);
puts("");
}
void stringReverse(char strArray[])
{
if (strArray[0] == '\0') {
return;
}
stringReverse(&strArray[1]);
printf("%c", strArray[0]);
}