Ciao e Benvenuto.
In questa conferenza, voglio parlare sull'inizializzazione di un array.
Sappiamo come usare un array, sappiamo come creare un array.
Ma nello specifico, cosa succede se lo desideri per assegnare valori iniziali specifici all'array,
come si fa?
Quindi ti consigliamo di assegnare iniziale valori per gli elementi del tuo array
il più delle volte.
Il motivo per cui vuoi assegnare valori iniziali a un
array o anche a variabili è perché rende più facile rilevare quando le
cose stanno andando male.
Quando non hai i dati iniziali e se provi a fare qualcosa, puoi
causare problemi al tuo programma.
Quindi l'inizializzazione è molto buona cosa e vuoi sempre farlo.
E usando un array, c'è molti, molti elementi in array.
E quindi c'è un modo specifico per farlo puoi inizializzare quegli elementi.
C'è di diverso sintassi che puoi usare.
Ma l'inizializzazione è una buona cosa e tu vuoi sempre farlo.
Volevo parlare velocemente di come puoi fare un array perché ci sono
diversi modi per farlo.
Quindi, proprio come puoi assegnare iniziale valori alle variabili, quando
vengono dichiarati, puoi anche assegnare valori iniziali agli elementi
di un array, quando viene dichiarato.
Per inizializzare i valori di un array, tu fornire semplicemente i valori in un elenco.
L'elenco è separato da virgole e l'intero elenco è racchiuso all'interno di
un paio di parentesi graffe.
Sembra qualcosa di simile.
Qui stiamo creando un file matrice denominata contatori.
È di tipo int, ha 5 elementi.
E poi quello che stiamo facendo siamo noi hanno le parentesi graffe
e non stiamo usando alcun indice qui.
Noterai che l'abbiamo appena fatto numeri separati da virgole.
Ciò che sta facendo è l'impostazione tutti e 5 gli elementi nella matrice dei
contatori a 0, ciascuno degli elementi è 0.
Se abbiamo un altro array e chiamiamo questo array è intero ed è anche di
dimensione 5 e quindi abbiamo nel nostro file parentesi graffe dopo
l'operatore di assegnazione 0 virgola 1 virgola 2 virgola 3 comma 4, cosa sta facendo?
Assegna un numero intero al primo elemento integer array a 0,
il secondo elemento a 1, il terzo elemento a 2, il quarto elemento a 3 e
il quinto elemento a 4.
È una bella sintassi dove puoi inizializza immediatamente l'array quando
lo dichiari semplicemente fornendo numeri separati da virgole tra parentesi
e vuoi farlo.
Inoltre non è necessario farlo completamente inizializza l'intero array.
Quindi in quei 2 precedenti esempi, abbiamo inizializzato tutti e 5
gli elementi di un array di dimensione 5.
E se volessi solo farlo inizializzare alcuni valori?
Se fornisci valori iniziali che non sono uguali al numero la dimensione dell'array, quindi il i valori rimanenti sono impostati su 0.
Quindi se fai qualcosa di simile questo dove hai
un array chiamato dati di esempio di tipo flusso, contiene 500 elementi.
Ma tra le parentesi graffe, tutto vedete qui sono i nostri 3 elementi.
Quello che sta per fare è inizializzerà
i primi 3 valori del campione matrice di dati a 100300500. 5.
E poi i restanti 5 497 gli elementi saranno 0.
Quindi non devi specifica tutto.
C'è anche questo concetto di un inizializzatore designato.
Questo è stato introdotto credo in C99.
È una caratteristica piccola e carina dove tu puoi scegliere e scegliere gli
elementi che desideri inizializzare.
Penso che in C99, l'hanno aggiunto e poi in C11 lo hanno reso facoltativo.
Quindi, a seconda di quale compilatore hai, potresti o non potresti essere
in grado di farlo.
Ma voglio parlarne perché è piuttosto comune.
Alcuni compilatori non lo consentono farlo dopo C99.
Ma è bello perché puoi in realtà basta scegliere e scegliere.
Quindi puoi racchiudere un elemento numero tra parentesi e quindi specificare gli elementi
dell'array che può essere inizializzato e puoi farlo
in qualsiasi ordine.
Quindi ecco un esempio.
Di nuovo, abbiamo il nostro array di dati di esempio.
È di tipo float.
Avrà una dimensione di 500.
Ma qui dentro i nostri ricci parentesi graffe, abbiamo indici aggiuntivi.
Abbiamo le nostre parentesi in 2, dice parentesi 2 sub-2 è uguale a 500. 5, sub-1 è uguale a
300. 0 e sub-0 è uguale a 100. 0.
Sono separati da virgole.
Tutto ciò che sta facendo è specificare la stessa cosa che avevamo nell'esempio
precedente, ma è farlo in un ordine diverso.
Ma lo farai ancora avere elementi 0 oppure il primo elemento uguale
a 100, il secondo elemento pari a 300 e terzo album pari
a 500. 5.
Ma stiamo specificando il file quale indice inizializzare tra
parentesi graffe.
Un altro esempio qui abbiamo un int array chiamato arr, è di dimensione 6.
E quando lo dichiariamo, lo siamo inizializzando il quinto
elemento che è l'ultimo elemento a 212, tutti gli elementi saranno 0.
Quindi ecco un esempio di tradizionale inizializzazione in cui dichiari solo
il nome del tuo array e fornite molti numeri diversi.
In questo esempio, stiamo dichiarando un array e memorizzerà
tutti i giorni di ogni singolo mese.
E così quando passiamo attraverso questo array e lo
stampiamo, che è molto comune, di solito usi esegue un ciclo per stampare gli elementi nell'array
o almeno iterare su di essi.
Quello che stiamo facendo qui è che siamo stamperò ogni
mese e quanti giorni ha.
Quindi esaminiamolo nel codice blocchi per mostrarti l'output.
Quindi ecco il nostro esempio.
Abbiamo giorni e mesi e stiamo inizializzando l'array.
Il primo elemento da essere 31, prossimo 28, prossimo 31.
Notate anche sulla riga 10, noi siamo utilizzando una definizione per creare una costante.
E a proposito in c, puoi anche usa una parola chiave costante, di cui parleremo
e altre cose, ovvero un altro modo per creare costanti.
Ma in questo momento stiamo solo parlando sugli
array e inizializzarli, molto facile da fare, separati da virgole all'interno di parentesi graffe.
Quindi cosa mostrerà passerà attraverso
l'array e guarderà indice più 1 e quindi indice dei giorni.
Quindi dirà il mese 1 ha quanti giorni a seconda di quali sono i
valori.
Quindi stiamo accedendo all'indice dal nome dell'array e quindi dal valore del
pedice, l'indice value e stiamo usando un array.
Quindi è una variabile che cambia in ogni iterazione.
Quindi proviamo a eseguirlo.
L'output che stai per ottenere vedere è il mese uno ha 31 giorni, il mese 2 ha 28 giorni in
qualche modo rappresenta Gennaio Febbraio Marzo Aprile, ma passa solo attraverso il
array e stampa i giorni fuori.
Quindi questo dimostra che il file l'inizializzazione funziona.
E ancora, vorrai per inizializzare i tuoi dati.
Ora parliamo di un altro esempio e parlare della ripetizione degli
elementi di inizializzazione.
Quindi ecco un altro esempio, ma in questo esempio
useremo un inizializzatore designato.
Specificheremo l'esatto elementi che vogliamo inizializzare.
Quindi la linea principale che dovresti l'avviso qui è quello
che dice in giorni e mesi dove stiamo facendo la nostra inizializzazione.
Noterai all'interno del riccio parentesi
che il primo elemento ottiene 31, il secondo 28, ma poi c'è
qualcosa tra parentesi che dice 4, otterrà valore 31.
Quindi abbiamo una virgola, l'elemento 5 otterrà 30,
l'elemento 6 otterrà 31.
E poi abbiamo 1.
Ciò significa che ora lo faremo sovrascrivi il 28, e in realtà
mettiamo un 29, mettilo come 29.
Quindi è un po 'ridondante qui.
Non abbiamo davvero bisogno di farlo, ma
rimuoveresti davvero il sub-1 perché 31 e 28, sub-1 è già assegnato qui.
Ma sembra che stiamo dicendo sub-1 può anche essere il valore 29.
Quindi questo sta solo usando il inizializzatori designati.
E se lo volessimo ripetere lo stesso valore.
Ora in c puoi sempre inizializza l'intero array dello
stesso valore se specifichi 0.
Puoi sempre inizializzare è come il parametro null.
Ma a parte questo, c non lo fa fornire qualsiasi meccanismo di scelta
rapida per inizializzare l'array elementi, almeno non in C89.
Potresti vedere in C11, di nuovo, dove tu può inizializzare lo stesso valore sull'intero
array usando solo le parentesi senza pedice solo il numero.
Ma in questo momento in C89 e C99, c'è nessun modo per specificare un conteggio delle ripetizioni.
Non c'è modo di dire tutti gli elementi di questo raggio dovrebbe essere 55, per esempio.
Quindi, se inizialmente fosse desiderato impostare tutti i 500 valori
dei dati di esempio su 1, tutti i 500 avrebbero da assegnare esplicitamente che
sarebbe un grande rompicoglioni.
Quindi quello che finirai per fare sarai tu basta metterli all'interno di un ciclo.
Il modo più semplice per iterare attraverso un array usa un ciclo.
Bene, ecco un rapido esempio di come puoi inizializzare tutti gli elementi
con lo stesso valore.
In questo caso, però, lo siamo inizializzando i
primi elementi a 0 1 4 9 e 16.
Quindi questo è davvero solo inizializzazione tutti gli elementi rimanenti a un valore.
Essenzialmente il sesto elemento di 10 ° elemento utilizzando gli indici da 5 a 9.
Quindi questo è ciò che sta facendo questo ciclo for.
Il primo ciclo for sta dicendo questo inizializzeremo gli elementi da 5
a 9 per essere I volte I.
E poi il secondo per loop qui, dovrebbe essere
rientrato, è più difficile da leggere.
Il secondo ciclo for è in realtà passando attraverso
l'intero array e visualizzando solo i dati in mostrare che gli ultimi 5
valori sono stati effettivamente inizializzati.
Quindi ogni volta che vuoi ripetere lo stesso valore o inizializzare
su valori diversi, basta usare un ciclo.
Anche in questo caso, l'inizializzazione è importante.
Dovrai inizializzare, quindi assicurati che questa sintassi sia una seconda natura per te perché
lo faremo sta usando gli array un po 'in c.