Non sto rieso a capire come il c gestisce gli array.Il manuale che sto leggendo parla di gestione diversa dei puntatori,mi sto confondendo.
Aiutoo!![]()
Inoltre qual è la differenza tra le 2 istruzioni:
strcpy(s1,s2);
s1=s2;
Non sto rieso a capire come il c gestisce gli array.Il manuale che sto leggendo parla di gestione diversa dei puntatori,mi sto confondendo.
Aiutoo!![]()
Inoltre qual è la differenza tra le 2 istruzioni:
strcpy(s1,s2);
s1=s2;
s1=s2 vuol dire assegnare al primo elemento dell' array s1, il primo elemento dell' array s2.Originariamente inviato da matrics21
strcpy(s1,s2);
s1=s2;
praticamente s1[0] = s2[0]
strcpy invece copia la stringa (che vuol dire l' array fino al terminatore '/0') s2 su s1.
Cosa non capisci della gestione degli array ? :master:
RISPOSTA 1 - ARRAY e PUNTATORIOriginariamente inviato da matrics21
Non sto rieso a capire come il c gestisce gli array.Il manuale che sto leggendo parla di gestione diversa dei puntatori,mi sto confondendo.
Aiutoo!![]()
Inoltre qual è la differenza tra le 2 istruzioni:
strcpy(s1,s2);
s1=s2;
L'aspetto che accomuna i puntatori e gli array è sostanzialmente il fatto che entrambi sono memorizzati in locazioni di memoria sequenziali, ed è quindi possibile agire su un array (se lo si vede come una serie di blocchi ad indirizzi di memoria sequenziali) come se si stesse agendo su un puntatore; ad esempio se dichiariamo un array "alfa" ed un puntatore "pointer":
in questo modocodice:// definisco un array ed una variabile intera int alfa[20], x; // creo il puntatore; int *pointer; // puntatore all'indirizzo di a[0] pointer = &a[0]; // x prende il valore di pointer, cioè di a[0]; x = *pointer;
pointer + i "è equivalente a" a[i]
RISPOSTA 2
la strcpy serve perche' una stringa e' un array di caratteri, quindi facendo un semplice assegnamento copi solo il primo elemento dell'array (cioe' s1=s2 e' come scrivere s1[0]=s2[0]) perche' il nome "s1" identifica solo il primo elemento.
[Homepage] [Contattami]
Powered by: Ubuntu - Debian - Gentoo
Developing: Java - C++ - PHP
[supersaibal]"Perchè tanto Debian è meglio"[/supersaibal]
Non ho capito nemmeno io.
In pratica posso gestire un array come lo gestisco in java?(escludendo la questione degli oggetti)
Ho letto che c'è un modo diverso,per poterlo gestire si devono utilizzare i puntatori,![]()
Se per esempio carico un array così è giusto?
int array[5];
int cont;
for(cont=0;cont<5;cont++)
{
fprint("Inserire un valore");
fscan(array[cont]);
}
scusa dove hai dichiarato l'array a?Originariamente inviato da virusbye
RISPOSTA 1 - ARRAY e PUNTATORI
L'aspetto che accomuna i puntatori e gli array è sostanzialmente il fatto che entrambi sono memorizzati in locazioni di memoria sequenziali, ed è quindi possibile agire su un array (se lo si vede come una serie di blocchi ad indirizzi di memoria sequenziali) come se si stesse agendo su un puntatore; ad esempio se dichiariamo un array "alfa" ed un puntatore "pointer":
in questo modocodice:// definisco un array ed una variabile intera int alfa[20], x; // creo il puntatore; int *pointer; // puntatore all'indirizzo di a[0] pointer = &a[0]; // x prende il valore di pointer, cioè di a[0]; x = *pointer;
pointer + i "è equivalente a" a[i]
RISPOSTA 2
la strcpy serve perche' una stringa e' un array di caratteri, quindi facendo un semplice assegnamento copi solo il primo elemento dell'array (cioe' s1=s2 e' come scrivere s1[0]=s2[0]) perche' il nome "s1" identifica solo il primo elemento.
assolutamente no, lui sta' parlando di puntatori(credo), quindi fare s1=s2Originariamente inviato da Cholo
s1=s2 vuol dire assegnare al primo elemento dell' array s1, il primo elemento dell' array s2.
praticamente s1[0] = s2[0]
:master:
vuol dire reindirizzare il 1 puntatore all' indirizzo di s2
per intenderci e' come fare
s1=&s2
se ci usa la strcpy sono portato a pensare si parli di arrayOriginariamente inviato da kentaromiura
assolutamente no, lui sta' parlando di puntatori(credo), quindi fare s1=s2
vuol dire reindirizzare il 1 puntatore all' indirizzo di s2
per intenderci e' come fare
s1=&s2![]()
Sto parlando dell'istruzione in genere,non so quando e come si usa
infatti la differenza di strcopy e assegnazione e' questa..Originariamente inviato da Cholo
se ci usa la strcpy sono portato a pensare si parli di array![]()
se tu fai strcpy
char * strcpy ( char * dest, const char * src );
passi il puntatore al primo char di dest
e il puntatore al primo char di source
quindi copia la stringa, e le 2 variabili risultano DIVERSE
mentre fare src=dest
se cambio src cambio anche dest
poiche' puntano allo stesso array di char!!
L'istruzione per assegnare il valore del primo elemento di s2 al primo elemento di s1 (posto che siano entrambi array) è
Mentrecodice:*s1=*s2
Equivale a far puntare i due array entrambi alla stessa locazione in memoria, cosa di solito sconveniente in quanto alla modifica di uno dei due array anche l'altro subisce le medesime modifiche.codice:s1=s2
Edit: in pratica ha ragione kentaro.![]()
ChReAn
-------------------
Slackware 9.1 powered