Innanzitutto grazie per le risposte

poi hai ragione non sono stato chiarissimo.

Quello che volevo dire è:

se io ho una funzione del tipo:

void funzione(int c);

se richiamo la funzione scrivendo:

funzione(x);

la variabile c della funzione è una copia di x e quindi se la modifico x non cambia.

diversamente se la mia funzione è del tipo:

void funzione(int c[]);

se scrivo:

int x[100];

funzione(x);

ovviamente alla funzione ho passato l'indirizzo di memoria del primo elemento di x quindi c non è più una copia del vettore x ma semplicemente un puntatore a x e non si può fare in modo che c sia una copia di x, ho capito bene? (spero almeno, altrimenti mi spiego ancora meglio )


per la seconda domanda che non hai capito, faccio prima a fare un esempio:

int main() {

char s[100];
int i;

cin>>s;

for(i=0;s[i]!='\0';i++) ;

cout<<s;

}
inserendo come input:

stringa prova

L'output di questo programma è:

6

invece dovrebbe essere 12... Da cosa dipende?