C Programming · 2 min read · Nov 20, 2025

Linux C Programming tutorial part 22 - Accessing command line arguments within C program

Nel tutorial precedente, abbiamo discusso diversi concetti relativi ai puntatori nel linguaggio di programmazione C. Uno dei concetti di cui abbiamo parlato era un array di puntatori. Abbiamo utilizzato l’esempio di un array di puntatori interi per dimostrare il concetto.

Come accedere agli argomenti della riga di comando all’interno di un programma C

Ma come accennato in quel tutorial, un array di puntatori può essere di diversi tipi. Ad esempio, ecco un array di puntatori a caratteri:

char *arr[] = {"HowtoForge", "FaqForge", "Linux"};

Ecco un piccolo programma che mostra come questo array può essere utilizzato:

#include   
  
int main()  
{  
 char *arr[] = {"HowtoForge", "FaqForge", "Linux"};  
   
 printf("\n %s", *arr);  
 printf("\n %s", *(arr+1));  
 printf("\n %s", *(arr+2));  
  
   
 return 0;  
}

‘arr’ è l’indirizzo del primo elemento di questo array. Ora, poiché questo è un array di puntatori, il primo elemento (e tutti gli altri elementi, accessibili aggiungendo 1 e 2 a arr) non è altro che un indirizzo. Quindi, per accedere al valore conservato in quell’indirizzo, utilizziamo l’operatore *.

Di seguito è riportato l’output di questo programma:

HowtoForge   
FaqForge   
Linux

Quindi questo è il modo in cui accedi ai valori da un array di puntatori a caratteri. Ora, devi pensare perché abbiamo discusso tutto questo?

Bene, lo abbiamo fatto perché questo ci porta a un altro concetto importante, che è la capacità di accedere agli argomenti della riga di comando in ambienti che supportano il linguaggio di programmazione C. Discutiamo questo in dettaglio.

Come dovresti sapere bene ormai, ‘main’ è la prima funzione nel tuo programma che viene chiamata quando il programma viene eseguito. Viene chiamata con due argomenti: argc e argv. Mentre il primo ti dice il numero di argomenti della riga di comando, il secondo è in realtà un array di puntatori agli argomenti stessi.

Si prega di notare che il nome del programma stesso viene passato come argomento alla funzione principale. Quindi, a causa di questo, il numero di argomenti - rappresentato da argc - è uno in più rispetto al numero effettivo di argomenti passati al programma. Di seguito è riportato un esempio:

#include   
  
int main(int argc, char *argv[])  
{  
 printf("\n %d", argc);  
 printf("\n %s", *argv);  
   
 return 0;  
}

Ora, abbiamo eseguito questo programma - chiamato a.out, e presente nella directory ‘home’ del nostro sistema - senza alcun argomento. Ed ecco l’output:

 1   
 /home/a.out

Quindi puoi vedere che il nome di esecuzione del programma è stato passato come argomento. Se avessi usato il seguente comando:

/home/a.out htf ff

Allora in quel caso, argc sarebbe stato 3 e argv avrebbe contenuto indirizzi delle stringhe ‘/home/a.out’, ‘htf’ e ‘ff’.

Ecco un modo migliore per scrivere il programma di stampa degli argomenti:

#include   
  
int main(int argc, char *argv[])  
{  
   for(int i=0; i

Vale la pena ricordare che gli argomenti sono memorizzati nell’array nello stesso ordine in cui vengono passati sulla riga di comando.

Conclusione

Probabilmente ti troverai in diverse situazioni in cui dovrai affrontare argomenti della riga di comando all’interno del tuo codice C. Ciò di cui abbiamo discusso qui dovrebbe costituire una base per te. Prova a scrivere alcuni programmi dalla tua parte per avere un’idea migliore su come vengono accessi gli argomenti della riga di comando all’interno di un programma C.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.