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?![]()