Appunti di programmazione

Appunti per il corso universitario di programmazione, riferito al linguaggio ANSI C
Redatti all'università di Venezia

ARGOMENTI

STRUTTURA COMPUTER

DEFINIZIONI

TASTIERA E TIPI

AMBIENTE E MEMORIA

COMANDI

FUNZIONI E PROCEDURE

TIPI DERIVATI

PUNTATORI

STRINGHE

ARRAY DI PUNTATORI

STRUTTURE

TYPEDEF E ENUM

PUNTATORI A PROCEDURE

ALLOCAZIONE DINAMICA

LISTE

ALGORITMI

ERRORI

ARRAY E PUNTATORI AD ARRAY DI CARATTERI - DIFFERENZE NELLA GESTIONE DELLE STRINGHE

programma esplicativo:


int main() {


/* in questo modo posso inizializzare un array con una stringa, è possibile farlo solo

* durante la fase di inizializzazione.

* non potremo infatti eseguire un comando di assegnamento analogo,

* (del tipo stringa="ciao"; o stringa=stringa2) successivamente.

* per assegnare nuovi valori a stringa utilizzeremo la funzione strcpy

* (es. strcpy(stringa, "nuovocontenuto");)

* importante: essendo stringa definita come array sarà possibile durante l'esecuzione

* modificare il valore dei suoi elementi (es. stringa[1]='l';)

*/

char stringa[]="ciao";

/* in questo modo dichiaro un puntatore a stringa e vi associo la stringa *costante* "ciao"

* il comando:

*/

char *stringaptr="ciao";

/* e' equivalente ai comandi: */

char *stringaptr;

strptr = "ciao";

/* importante: l'ultimo comando è possibili riscriverlo diverese nel codice per cambiare

* interamente la stringa (equivale a cambiare l'indirizzo contenuto in strptr) mentre *non*

* e' possibile modificare un solo carattere per volta come avveniva con l'array di sopra

* questo perchè si tratta di un puntatore a stringa *costante*

* non e' neanche possibile utilizzare:

*/

char *titolo = {'c', 'i', 'a', 'o', '\0'};

strcpy(titolo, "ciao");

/* possiamo pero' accedere in *lettura* al singolo carattere con l'aritmetica dei puntatori: */

printf("%c", *(strptr+1));

}

PASSAGGIO DI ARGOMENTI

int main(int argc, char *argv[])

a.out pippo caio luigi

passo 4 stringhe (argc = 4) che vanno a memorizzarsi in argv


la prima stringa che viene memorizzata non è solo il nome dell'eseguibile ma anche gli eventuali percorsi (C:\ ecc)

Ritorna sopra | Home page