Annuncio

Imparare a programmare è un'esperienza cumulativa. Oltre ad apprendere la sintassi della lingua scelta, devi anche apprendere i principi generali utilizzati da tutti i linguaggi di programmazione.

Comprendere e imparare la programmazione C può essere scoraggiante, ma ci sono alcune idee di base con cui vale la pena familiarizzare quando si inizia. Un progetto semplice è un ottimo modo per apprendere i fondamenti di C.

Quindi da dove dovresti iniziare? Salutando!

1. Ciao mondo!

La prima parte di quasi tutti i corsi di programmazione è il Ciao mondo programma. Esaminarlo in dettaglio mette in evidenza alcuni dei modi in cui il C differisce dagli altri linguaggi. Per cominciare, apri un editor di testo o IDE Editor di testo vs. IDE: quale è meglio per i programmatori?Scegliere tra un IDE avanzato e un editor di testo più semplice può essere difficile. Offriamo alcune informazioni per aiutarti a prendere questa decisione. Per saperne di più a tua scelta e inserisci questo codice:

#includere 
instagram viewer
/* questo è uno script Hello World in C */ int principale (vuoto) { printf("Ciao, Mondo! \n"); restituisce 0; }

Questo breve pezzo di codice viene stampato sulla console prima di terminare il programma. Salvalo in un posto facile da ricordare come Ciao C. Ora devi compilare e costruire il tuo file.

Farla funzionare

Di solito, non è necessario installare alcun software aggiuntivo sul computer per eseguire gli script C. Apri una finestra del terminale (o un prompt dei comandi se stai utilizzando Windows) e vai alla directory in cui hai salvato lo script.

Il modo in cui compili ed esegui il file varia da sistema a sistema:

  • Utenti Windows: Rendi eseguibile il tuo file digitando cl ciao.c e premendo invio. Questo creerà hello.exe nella stessa cartella, che puoi eseguire digitando Ciao.
  • Utenti Linux e macOS: Tipo gcc -o ciao ciao.c e premi invio per renderlo eseguibile ed eseguilo digitando ./Ciao.

Qualunque sia il metodo che usi, l'esecuzione dello script dovrebbe mostrarti questo:

Output che mostra i risultati di un Hello World! schizzo in Do

Se non ha funzionato su Windows, assicurati di eseguire il prompt dei comandi in modalità amministratore. Per macOS, potrebbe essere necessario installare Xcode dall'App Store e segui questi passaggi da StackOverflow.

Ora, diamo un'occhiata al programma riga per riga per vedere come funziona e migliorarlo!

Under the Hood: Capire il linguaggio C

Preprocessori

Lo script appena creato inizia con l'inclusione di una libreria.

#includere 

La prima riga nello script si chiama a preprocessore. Questa operazione viene eseguita prima della compilazione del resto dello script. In questo caso, dice allo script di usare il stdio.h biblioteca. C'è un numero enorme di preprocessori disponibili per diverse attività.

Stdio.h si occupa di ottenere input dall'utente del programma e di restituire loro le informazioni.

/* questo è uno script Hello World in C */

Questa riga successiva è un commento. La barra e la stella dicono al compilatore di ignorare tutto ciò che c'è tra esso e la stella e la barra di chiusura. Anche se questo può sembrare inutile, essere in grado di lasciare a te stesso e agli altri note chiare su ciò che fa il tuo codice è un'abitudine essenziale da prendere.

La funzione principale

int principale (vuoto)

Ogni programma C deve avere un principale funzione. Main è una funzione che restituisce un intero, indicato con int. Le parentesi dopo main sono per i suoi argomenti, anche se in questo caso non ne prende nessuno, motivo per cui usi il vuoto parola chiave.

Scrivi il codice da eseguire tra due parentesi graffe.

{ printf("Ciao, Mondo! \n"); restituisce 0; }

All'interno della funzione, chiami il printf() funzione. Proprio come principale(), printf è una funzione. La differenza è che printf è una funzione nel stdio libreria che hai incluso all'inizio.

Printf stampa qualsiasi cosa tra parentesi, tra virgolette, sulla console. Il \n è una sequenza di escape chiamata newline, che dice al compilatore di saltare alla riga successiva nella console prima di continuare.

Nota che queste righe finiscono in punto e virgola, che il compilatore usa per dividere un'attività dalla successiva. Presta molta attenzione a questi punti e virgola: perderli è la causa numero uno delle cose che non vanno bene!

Infine, la funzione ritorna con il numero 0, terminando il programma. Il principale() la funzione deve sempre restituire un numero intero, e ritorno = 0; segnala al computer che il processo è andato a buon fine.

Comprendere ogni passaggio di questo script è un ottimo inizio per imparare sia la sintassi del C, sia il funzionamento del linguaggio.

2. Creare le proprie funzioni C

Puoi creare le tue funzioni personalizzate in C. Invece di stampare Hello World nella funzione principale, crea una nuova funzione per farlo per te.

void print_for_me() { printf("Ciao, Mondo! \n"); }

Rompiamo questo.

vuoto è una parola chiave che significa che la seguente funzione non restituirà nulla.

print_for_me() è il nome della funzione e le parentesi vuote mostrano che non richiede argomenti per funzionare. Un argomento è qualsiasi informazione da passare a una funzione per farla funzionare: in seguito si aggiungerà un proprio argomento per modificare l'output! Nota: Questa non è la stessa della funzione main() sopra la quale usava void. Quella funzione non può accettare argomenti, mentre questa può (ma in questo caso, non è necessario).

Il blocco di codice dovrebbe esserti familiare: è solo l'istruzione print della funzione principale originale.

Ora puoi chiamare questa funzione dalla tua funzione principale.

int principale (vuoto) { print_for_me(); print_for_me(); restituisce 0; }

Puoi vedere qui un vantaggio nell'usare la tua funzione. Piuttosto che scrivere printf(“Ciao mondo! \n") ogni volta, puoi chiamare la funzione due volte.

In questo momento potrebbe non sembrare così importante, ma se la tua funzione print_for_me conteneva molte righe di codice, essere in grado di chiamarla così facilmente è un grande risparmio di tempo!

Hello world che emette due volte attraverso più chiamate di funzione

Questa è un'idea fondamentale della programmazione che incontrerai durante la tua formazione. Scrivi la tua funzione una volta, invece di scrivere gli stessi grossi blocchi di codice più e più volte.

3. Utilizzo di prototipi di funzioni in C

I prototipi sono uno dei principali modi in cui il C per principianti differisce dagli altri linguaggi. In breve, un prototipo è come un'anteprima di una funzione definita in seguito. Se scrivi la funzione print_for_me() dopo la funzione main, potresti ricevere un avviso durante la compilazione:

Immagine composita che mostra il codice senza prototipo e l'avviso che dà il compilatore c

Il messaggio di avviso ti dice che il compilatore ha eseguito la funzione print_for_me prima che fosse dichiarata, quindi non poteva essere sicuro che avrebbe funzionato correttamente durante l'esecuzione del programma.

Il codice funzionerebbe ancora, ma l'avviso può essere evitato del tutto utilizzando un prototipo.

#includere void print_for_me(); int principale (vuoto) { print_for_me(); print_for_me(); restituisce 0; } vuoto print_for_me() { printf("Ciao, Mondo! \n"); }

Guardando il programma completo puoi vedere che il prototipo di print_for_me() esiste all'inizio del programma, ma non contiene nulla. La funzione prototipo mostra al compilatore come dovrebbe apparire la funzione e se richiede argomenti o meno.

Ciò significa che quando lo chiami nella funzione principale, il compilatore sa se viene chiamato correttamente e può generare un avviso o un errore se necessario. Questo potrebbe essere qualcosa che sembra strano ora, ma conoscerli ora aiuterà in futuro.

Hello world che emette due volte attraverso più chiamate di funzione

Questo programma funziona ancora senza un prototipo, ma è una buona pratica da usare. L'output sembra ancora lo stesso per ora, cambiamolo per renderlo più personale!

4. Passare argomenti alle funzioni C

Cambiare lo script

Per questo passaggio finale, chiederai il nome dell'utente e registrerai il suo input. Quindi lo utilizzerai nella funzione che hai creato prima. In C, le parole non sono conosciute come stringhe come in altri linguaggi di programmazione.

Sono invece un array di singoli caratteri. Il simbolo di un array è [] e la parola chiave è char. Inizia aggiornando la tua funzione prototipo all'inizio dello script:

#includere  void print_for_me (char name[]); 

Ora, il compilatore saprà che la funzione più avanti nello script accetta un array di caratteri chiamato nome. Finora, questo personaggio non esiste. Aggiorna la tua funzione principale per crearla e usala per memorizzare l'input dell'utente:

int principale (vuoto) { nome carattere[20]; printf("Inserisci nome: "); scanf("%s", nome); print_for_me (nome); print_for_me("Tutti!"); restituisce 0; }

La prima riga in main crea un array di caratteri con 20 possibili spazi chiamati name. Successivamente, all'utente viene richiesto di inserire il proprio nome utilizzando printf. La riga successiva usa una nuova funzione chiamata scanf che prende la parola successiva digitata dall'utente.

Il "%S" dice alla funzione che dovrebbe memorizzare i dati come una stringa e chiamarla nome.

Modifica della funzione

Ora, quando chiami print_for_me, puoi includere nome tra parentesi. Nella riga successiva, vedrai che puoi anche passare altri caratteri purché siano tra virgolette. Entrambe le volte, ciò che è tra parentesi viene passato alla funzione print_for_me.

Modificalo ora per utilizzare le nuove informazioni che gli stai fornendo:

void print_for_me (nome carattere[]) { printf("Ciao, "); mette (nome); }

Qui puoi vedere che le parentesi sono state aggiornate proprio come il prototipo all'inizio dello script. All'interno, stampi ancora ciao usando printf. Una nuova funzione qui è mette. Questa è una versione più avanzata di printf.

Tutto ciò che viene messo tra parentesi verrà stampato sulla console e una nuova riga (il \n usato in precedenza) viene aggiunto automaticamente.

Salva e compila il tuo codice nello stesso modo in cui hai fatto in precedenza: nota che puoi nominare il programma in modo diverso se non vuoi sovrascrivere il tuo programma precedente. Ho chiamato il mio ciao2:

Il programma finito in Do

Come dovresti vedere, il programma prende l'input e lo utilizza nella funzione, prima di inviare il saluto preimpostato di "Tutti!" ancora dando due uscite separate alla stessa funzione.

L'ABC della programmazione in C

Questo programma è semplice, ma alcuni dei concetti in esso contenuti non lo sono. Il codice C più avanzato deve essere scritto molto bene per evitare arresti anomali. Questo è il motivo per cui molti pensano che sia un ottima lingua da imparare prima poiché instilla buone abitudini nei nuovi programmatori.

Altri pensano che imparare il C++ sia un'idea migliore, poiché si basa su C pur mantenendo il suo controllo di sistema inferiore. (C'è anche Rust da considerare: è un entusiasmante linguaggio di programmazione che è sintatticamente simile a C++.)

Una cosa è certa: linguaggi come Python sono molto più amichevoli per i principianti. Per un vecchio linguaggio, C è ancora usato ovunque, ma Python potrebbe essere il linguaggio del futuro 6 motivi per cui Python è il linguaggio di programmazione del futuroVuoi imparare o ampliare le tue capacità di programmazione? Ecco perché Python è il miglior linguaggio di programmazione da imparare quest'anno. Per saperne di più !

Ian Buckley è un giornalista freelance, musicista, performer e produttore di video che vive a Berlino, in Germania. Quando non sta scrivendo o sul palco, armeggia con l'elettronica o il codice fai-da-te nella speranza di diventare uno scienziato pazzo.