Grande simo85.
Hai qualche suggerimento per imparare a programmare bene?
Videata in Linguaggio c non riuscita
Moderatori:
Paolino,
fairyvilje
19 messaggi
• Pagina 2 di 2 • 1, 2
0
voti
angrigio ha scritto:qualche suggerimento per imparare a programmare bene?
Tanto studio, tanto esercizio e leggere tanto codice altrui per imparare a valutarne difetti e pregi.

0
voti
Se solo ti interessa migliorare la tua esperienza in C, allora devi fare tanta pratica.
Studiare va bene ma devi anche (scusa la ripetizione) fare tanta pratica.
Per la teoria io ho usato il classico K&R ed uno in spagnolo.. Tutto il resto è venuto da sé.. Vale anche il consiglio di
IlGuru.
Studiare va bene ma devi anche (scusa la ripetizione) fare tanta pratica.
Per la teoria io ho usato il classico K&R ed uno in spagnolo.. Tutto il resto è venuto da sé.. Vale anche il consiglio di
0
voti
Ciao
angrigio,
in C abituati fin da subito a lavorare con i puntatori; anche gli array, essendo aree di memoria contigue, sono spesso manipolati attraverso puntatori (e attraverso l' aritmetica dei puntatori) piuttosto che attraverso vettori ed indici.
Per farti un esempio, ho riscritto le funzioni fillArray e printArray usando i puntatori, così se vuoi puoi prenderlo come spunto per approfondire il tema.
Ho aggiunto qualche riga di commento per renderlo più chiaro (purtroppo nell' inserimento nel post vengono un po' disordinati)
In fillArray ho lasciato il ciclo for sulla variabile 'ì' solo perché deve essere stampata, ma in printArray l'uscita dal loop è fatta confrontando direttamente i puntatori; quello corrente vs quello dell' ultimo elemento dell' array.
in C abituati fin da subito a lavorare con i puntatori; anche gli array, essendo aree di memoria contigue, sono spesso manipolati attraverso puntatori (e attraverso l' aritmetica dei puntatori) piuttosto che attraverso vettori ed indici.
Per farti un esempio, ho riscritto le funzioni fillArray e printArray usando i puntatori, così se vuoi puoi prenderlo come spunto per approfondire il tema.
Ho aggiunto qualche riga di commento per renderlo più chiaro (purtroppo nell' inserimento nel post vengono un po' disordinati)
In fillArray ho lasciato il ciclo for sulla variabile 'ì' solo perché deve essere stampata, ma in printArray l'uscita dal loop è fatta confrontando direttamente i puntatori; quello corrente vs quello dell' ultimo elemento dell' array.
- Codice: Seleziona tutto
void fillArray(double *array, size_t size)
{
int i = 0;
printf("Insert value:\n");
for(i = 0; i < size; i++) {
printf("%d: ", i);
scanf("%lf", array++); // prima inserisce il valore alla locazione corrente e
// dopo incrementa l'indirizzo a cui punta *array
}
}
void printArray(double *array, size_t size)
{
double *p_end = array + size - 1; // puntatore all'ultimo elemento dell'array
// (considerare che size potrebbe valere 0)
while(array <= p_end)
printf("%lf ", *array++); // prima stampa il valore della locazione
//corrente e dopo incrementa l'indirizzo a cui punta *array
printf("\n"); // all'uscita dal loop, l'indirizzo a cui punta *array
// è maggiore di quello a cui punta *p_end
}
Alberto
La vita è come una bicicletta, devi sempre pedalare per rimanere in equilibrio
Annuncio sempre valido: http://www.electroyou.it/forum/viewtopic.php?f=10&t=62668
La vita è come una bicicletta, devi sempre pedalare per rimanere in equilibrio
Annuncio sempre valido: http://www.electroyou.it/forum/viewtopic.php?f=10&t=62668
-

AlbertoBianchi
2.009 3 5 - Master

- Messaggi: 836
- Iscritto il: 4 dic 2014, 18:30
- Località: Lastra a Signa (FI)
1
voti
"C - A Reference Manual" è un libro che non puoi non avere. Ti servirà sempre come libro di riferimento.
Lo puoi scaricare da questo link
Lo puoi scaricare da questo link
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
simo85 ha scritto:quando voglio iterare un buffer passat per argomento dentro una funzione, devo conoscerne la dimensione. Non potrei di certo usare la funzione sizeof.
No, non puoi usare la sizeof ma in questo caso avevi la costante già bella pronta da usare.
Però il programmatore esperto scrive sempre funzioni generiche (ovviamente quando ne vale la pena) da poter riutilizzare in altre parti del codice.
simo85 ha scritto:Ma non è vero dai
![]()
Ammetti che non vuoi essere chiamato saggio per non sentirti vecchio
Che poi sei molto più giovane di me :)

http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)
Strumento per formule
Tool gratuito per chi sviluppa su millefori.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)
Strumento per formule
-

posta10100
5.550 4 10 13 - Master EY

- Messaggi: 4832
- Iscritto il: 5 nov 2006, 0:09
19 messaggi
• Pagina 2 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 44 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




Ma non è vero dai