Capitolo 10 - Strutture, Unioni, Manipolazione di Bit, ed Enumerazioni
|
|
- Bruno Danieli
- 5 anni fa
- Visualizzazioni
Transcript
1 Capitolo 10 - Strutture, Unioni, Manipolazione di Bit, ed Enumerazioni 10.1 Introduzione 10.2 Definizione di Strutture 10.3 Inizializzazione di strutture 10.4 Accesso alle componenti di una struttura 10.5 Utilizzo delle strutture con le funzioni 10.6 typedef 10.7 Esempio 10.8 Union 10.9 Operatori Bitwise Campi di Bit Enumerazioni 1 Obiettivi In questo capitolo, impareremo a: Creare e utilizzare le strutture, le union e le enumerazioni. Passare strutture a funzioni: call by value e call by reference. Manipolare i dati con gli operatori bitwise. Creare i campi di bit per la memorizzazione compatta dei dati Introduzione 10.2 Definizione di strutture Strutture Esempio Collezioni di variabili correlate (aggregati) sotto un nome struct card { Può contenere varibili di tipo diverso Utilizzate di solito per definire record da memorizzare nei file Combinate con i puntatori, possono essere utilizzate per la creazione di liste collegate, pile, code ed alberi char *face; char *suit; }; struct introduce la definizione della struttura card card è il nome della struttura ed è utilizzato per dichiarare variabili di questo tipo di struttura card contiene due componenti di tipo char * Queste componenti sono face e suit
2 Definizione di strutture 10.2 Definizione di strutture struct Una struct non può contenere un istanza di se stessa Non puo contenere una componente che è un puntatore allo stesso tipo di struttura Un definizione di struttura non alloca spazio in memoria Crea invece un nuovo tipo di dato (astrazine dati) Definizioni Definita come le altre variabili: card onecard, deck[ 52 ], *cptr; Si può utilizzare una lista separata da virgole: struct card { char *face; char *suit; } onecard, deck[ 52 ], *cptr; 7 8 Operazioni valide 10.2 Definizione di strutture Assegnare una struttura ad una strutura dello stesso tipo Ottenere l indirizzo (&) di una struttura Accedere alle componenti di una struttura Utilizzare l operatore sizeof per determinare la dimensione della struttura 10.3 Inizializzazione di strutture Liste di inizializzazione Esempio: card onecard = { "Three", "Hearts" }; Assegnamento Esempio: card threehearts = onecard; Si potrebbe definire ed inizializzare threehearts come segue: card threehearts; threehearts.face = Three ; threehearts.suit = Hearts ;
3 10.4 Accedere alle componenti Accedere alle componenti di una struttura L operatore punto (.) utilizzato con la variabile struttura card mycard; printf( "%s", mycard.suit ); L operatore freccia (->) utilizzato per puntatori a strutture card *mycardptr = &mycard; printf( "%s", mycardptr->suit ); 9 1 /* Fig. 10.2: fig10_02.c 2 Using the structure member and 3 structure pointer operators */ 4 #include <stdio.h> 5 6 /* card structure definition */ 7 struct card { 8 char *face; /* define pointer face */ 9 char *suit; /* define pointer suit */ 10 }; /* end structure card */ int main() 13 { 14 struct card a; /* define struct a */ 15 struct card *aptr; /* define a pointer to card */ /* place strings into card structures */ 18 a.face = "Ace"; 19 a.suit = "Spades"; aptr = &a; /* assign address of a to aptr */ 22 fig10_02.c (Part 1 of 2) 10 mycardptr->suit è equivalente a ( *mycardptr ).suit 23 printf( "%s%s%s\n%s%s%s\n%s%s%s\n", a.face, " of ", a.suit, 24 aptr->face, " of ", aptr->suit, 25 ( *aptr ).face, " of ", ( *aptr ).suit ); return 0; /* indicates successful termination */ } /* end main */ fig10_02.c (Part 2 of 2) Utilizzare le strutture con le funzioni Passaggio di strutture a funzioni 12 Ace of Spades Ace of Spades Ace of Spades Program Output Passare l intera struttura O, passare le singole componenti Passaggio call by value Passare strutture call-by-reference Passare il suo indirizzo Passare il suo riferimento Passare array call-by-value Creare una struttura con array come componente Passare la struttura
4 typedef typedef Crea dei sinonimi (alias) per tipi di dati definiti precedentemente Utilizzare la typedef per creare tipi di nomi più corti Esempio: typedef struct Card *CardPtr; Definisce un nuovo nome di tipo di dato CardPtr come sinonimo per il tipo struct Card * typedef non crea un nuovo tipo di dato Crea solo un alias 10.7 Esempio Pseudo codice: Creare un array di strutture card Mettere le carte nel mazzo Mescolare il mazzo Distribuire le carte 1 /* Fig. 10.3: fig10_03.c 2 The card shuffling and dealing program using structures */ 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <time.h> 6 7 /* card structure definition */ 8 struct card { 9 const char *face; /* define pointer face */ 10 const char *suit; /* define pointer suit */ 11 }; /* end structure card */ typedef struct card Card; /* prototypes */ 16 void filldeck( Card * const wdeck, const char * wface[], 17 const char * wsuit[] ); 18 void shuffle( Card * const wdeck ); 19 void deal( const Card * const wdeck ); int main() 22 { 23 Card deck[ 52 ]; /* define array of Cards */ 24 fig10_03.c (Part 1 of 4) /* initialize array of pointers */ 26 const char *face[] = { "Ace", "Deuce", "Three", "Four", "Five", 27 "Six", "Seven", "Eight", "Nine", "Ten", 28 "Jack", "Queen", "King"}; /* initialize array of pointers */ 31 const char *suit[] = { "Hearts", "Diamonds", "Clubs", "Spades"}; srand( time( NULL ) ); /* randomize */ filldeck( deck, face, suit ); /* load the deck with Cards */ 36 shuffle( deck ); /* put Cards in random order */ 37 deal( deck ); /* deal all 52 Cards */ return 0; /* indicates successful termination */ } /* end main */ /* place strings into Card structures */ 44 void filldeck( Card * const wdeck, const char * wface[], 45 const char * wsuit[] ) 46 { 47 int i; /* counter */ 48 fig10_03.c (Part 2 of 4) 16
5 49 /* loop through wdeck */ 50 for ( i = 0; i <= 51; i++ ) { 51 wdeck[ i ].face = wface[ i % 13 ]; 52 wdeck[ i ].suit = wsuit[ i / 13 ]; 53 } /* end for */ } /* end function filldeck */ /* shuffle cards */ 58 void shuffle( Card * const wdeck ) 59 { 60 int i; /* counter */ 61 int j; /* variable to hold random value between 0-51 */ 62 Card temp; /* define temporary structure for swapping Cards */ /* loop through wdeck randomly swapping Cards */ 65 for ( i = 0; i <= 51; i++ ) { 66 j = rand() % 52; 67 temp = wdeck[ i ]; 68 wdeck[ i ] = wdeck[ j ]; 69 wdeck[ j ] = temp; 70 } /* end for */ } /* end function shuffle */ 73 fig10_03.c (3 of 4) /* deal cards */ 75 void deal( const Card * const wdeck ) 76 { 77 int i; /* counter */ /* loop through wdeck */ 80 for ( i = 0; i <= 51; i++ ) { 81 printf( "%5s of %-8s%c", wdeck[ i ].face, wdeck[ i ].suit, 82 ( i + 1 ) % 2? '\t' : '\n' ); 83 } /* end for */ } /* end function deal */ fig10_03.c (4 of 4) 18 Four of Clubs Three of Hearts Three of Diamonds Three of Spades Four of Diamonds Ace of Diamonds Nine of Hearts Ten of Clubs Three of Clubs Four of Hearts Eight of Clubs Nine of Diamonds Deuce of Clubs Queen of Clubs Seven of Clubs Jack of Spades Ace of Clubs Five of Diamonds Ace of Spades Five of Clubs Seven of Diamonds Six of Spades Eight of Spades Queen of Hearts Five of Spades Deuce of Diamonds Queen of Spades Six of Hearts Queen of Diamonds Seven of Hearts Jack of Diamonds Nine of Spades Eight of Hearts Five of Hearts King of Spades Six of Clubs Eight of Diamonds Ten of Spades Ace of Hearts King of Hearts Four of Spades Jack of Hearts Deuce of Hearts Jack of Clubs Deuce of Spades Ten of Diamonds Seven of Spades Nine of Clubs King of Clubs Six of Diamonds Ten of Hearts King of Diamonds Program Output Union union Spazio di memoria che può contenere vari oggetti nel tempo Contiene solo un dato alla volta Le componenti di una union condividono spazio Risparmia la memoria Solo l ultima componente definita è accessibile union definizioni Come la struct union Number { int x; float y; }; union Number value; 20
6 10.8 Union Operazioni union valide Assegnamento alla union dello stesso tipo: = Ottenere l indirizzo: & Far riferimento alle componenti di una union:. Far riferimento alle componenti utilizzando i puntatori: -> 21 1 /* Fig. 10.5: fig10_05.c 2 An example of a union */ 3 #include <stdio.h> 4 5 /* number union definition */ 6 union number { 7 int x; /* define int x */ 8 double y; /* define double y */ 9 }; /* end union number */ int main() 12 { 13 union number value; /* define union value */ value.x = 100; /* put an integer into the union */ 16 printf( "%s\n%s\n%s%d\n%s%f\n\n", 17 "Put a value in the integer member", 18 "and print both members.", 19 "int: ", value.x, 20 "double:\n", value.y ); 21 fig10_05.c (1 of 2) value.y = 100.0; /* put a double into the same union */ 23 printf( "%s\n%s\n%s%d\n%s%f\n", 24 "Put a value in the floating member", 25 "and print both members.", 26 "int: ", value.x, 27 "double:\n", value.y ); return 0; /* indicates successful termination */ } /* end main */ fig10_05.c (2 of 2) Operatori Bitwise Tutti i dati sono rappresentati come sequenze di bit Ogni bit può essere 0 o 1 Sequenze di 8 bit costituiscono un byte 24 Put a value in the integer member and print both members. int: 100 double: Put a value in the floating member and print both members. int: 0 double: Operator Description & bitwise AND The bits in the result are set to 1 if the corresponding bits in the two operands are both 1. bitwise inclusive OR ^ bitwise exclusive OR The bits in the result are set to 1 if at least one of the corresponding bits in the two operands is 1. The bits in the result are set to 1 if exactly one of the corresponding bits in the two operands is 1. << left shift Shifts the bits of the first operand left by the number of bits specified by the second operand; fill from the right with 0 bits. >> right shift Shifts the bits of the first operand right by the number of bits specified by the second operand; the method of fill ing from the left is machine dependent. ~ one s complement All 0 bits are set to 1 and all 1 bits are set to 0. Fig The bitwise operators.
7 1 /* Fig. 10.7: fig10_07.c 2 Printing an unsigned integer in bits */ 3 #include <stdio.h> 4 5 void displaybits( unsigned value ); /* prototype */ 6 7 int main() 8 { 9 unsigned x; /* variable to hold user input */ printf( "Enter an unsigned integer: " ); 12 scanf( "%u", &x ); displaybits( x ); return 0; /* indicates successful termination */ } /* end main */ /* display bits of an unsigned integer value */ 21 void displaybits( unsigned value ) 22 { 23 unsigned c; /* counter */ 24 fig10_07.c (1 of 2) /* define displaymask and left shift 31 bits */ 26 unsigned displaymask = 1 << 31; printf( "%7u = ", value ); /* loop through bits */ 31 for ( c = 1; c <= 32; c++ ) { 32 putchar( value & displaymask? '1' : '0' ); 33 value <<= 1; /* shift value left by 1 */ if ( c % 8 == 0 ) { /* output space after 8 bits */ 36 putchar( ' ' ); 37 } /* end if */ } /* end for */ putchar( '\n' ); 42 } /* end function displaybits */ fig10_07.c (2 of 2) 26 Enter an unsigned integer: = Operatori Bitwise Bit 1 Bit 2 Bit 1 & Bit Fig Results of combining two bits with the bitwise AND operator & /* Fig. 10.9: fig10_09.c 2 Using the bitwise AND, bitwise inclusive OR, bitwise 3 exclusive OR and bitwise complement operators */ 4 #include <stdio.h> 5 6 void displaybits( unsigned value ); /* prototype */ 7 8 int main() 9 { 10 unsigned number1; /* define number1 */ 11 unsigned number2; /* define number2 */ 12 unsigned mask; /* define mask */ 13 unsigned setbits; /* define setbits */ /* demonstrate bitwise & */ 16 number1 = 65535; 17 mask = 1; 18 printf( "The result of combining the following\n"); 19 displaybits( number1 ); 20 displaybits( mask ); 21 printf( "using the bitwise AND operator & is\n" ); 22 displaybits( number1 & mask ); 23 fig10_09.c (1 of 4) 28
8 24 /* demonstrate bitwise */ 25 number1 = 15; 26 setbits = 241; 27 printf( "\nthe result of combining the following\n"); 28 displaybits( number1 ); 29 displaybits( setbits ); 30 printf( "using the bitwise inclusive OR operator is\n"); 31 displaybits( number1 setbits ); /* demonstrate bitwise exclusive OR */ 34 number1 = 139; 35 number2 = 199; 36 printf( "\nthe result of combining the following\n"); 37 displaybits( number1 ); 38 displaybits( number2 ); 39 printf( "using the bitwise exclusive OR operator ^ is\n"); 40 displaybits( number1 ^ number2 ); /* demonstrate bitwise complement */ 43 number1 = 21845; 44 printf( "\nthe one's complement of\n" ); 45 displaybits( number1 ); 46 printf( "is\n" ); 47 displaybits( ~number1 ); 48 fig10_09.c (2 of 4) return 0; /* indicates successful termination */ } /* end main */ /* display bits of an unsigned integer value */ 54 void displaybits( unsigned value ) 55 { 56 unsigned c; /* counter */ /* declare displaymask and left shift 31 bits */ 59 unsigned displaymask = 1 << 31; printf( "%10u = ", value ); /* loop through bits */ 64 for ( c = 1; c <= 32; c++ ) { 65 putchar( value & displaymask? '1' : '0' ); 66 value <<= 1; /* shift value left by 1 */ if ( c % 8 == 0 ) { /* output a space after 8 bits */ 69 putchar( ' ' ); 70 } /* end if */ } /* end for */ 73 fig10_09.c (3 of 4) putchar( '\n' ); 75 } /* end function displaybits */ The result of combining the following = = using the bitwise AND operator & is 1 = The result of combining the following 15 = = using the bitwise inclusive OR operator is 255 = The result of combining the following 139 = = using the bitwise exclusive OR operator ^ is 76 = fig10_09.c (4 of 4) Program Output Operatori Bitwise Bit 1 Bit 2 Bit 1 Bit Fig Results of combining two bits with the bitwise inclusive OR operator. 32 The one's complement of = is =
9 10.9 Operatori Bitwise Bit 1 Bit 2 Bit 1 ^ Bit Fig Results of combining two bits with the bitwise exclusive OR operator ^ /* Fig : fig10_13.c 2 Using the bitwise shift operators */ 3 #include <stdio.h> 4 5 void displaybits( unsigned value ); /* prototype */ 6 7 int main() 8 { 9 unsigned number1 = 960; /* initialize number1 */ /* demonstrate bitwise left shift */ 12 printf( "\nthe result of left shifting\n" ); 13 displaybits( number1 ); 14 printf( "8 bit positions using the " ); 15 printf( "left shift operator << is\n" ); 16 displaybits( number1 << 8 ); /* demonstrate bitwise right shift */ 19 printf( "\nthe result of right shifting\n" ); 20 displaybits( number1 ); 21 printf( "8 bit positions using the " ); 22 printf( "right shift operator >> is\n" ); 23 displaybits( number1 >> 8 ); 24 fig10_13.c (1 of 2) return 0; /* indicates successful termination */ } /* end main */ /* display bits of an unsigned integer value */ 30 void displaybits( unsigned value ) 31 { 32 unsigned c; /* counter */ /* declare displaymask and left shift 31 bits */ 35 unsigned displaymask = 1 << 31; printf( "%7u = ", value ); /* loop through bits */ 40 for ( c = 1; c <= 32; c++ ) { 41 putchar( value & displaymask? '1' : '0' ); 42 value <<= 1; /* shift value left by 1 */ if ( c % 8 == 0 ) { /* output a space after 8 bits */ 45 putchar( ' ' ); 46 } /* end if */ } /* end for */ putchar( '\n' ); 51 } /* end function displaybits */ fig10_13.c (2 of 2) 35 The result of left shifting 960 = bit positions using the left shift operator << is = The result of right shifting 960 = bit positions using the right shift operator >> is 3 = Program Output 36
10 10.9 Operatori Bitwise Bitwise assignment operators &= Bitwise AND assignment operator. = Bitwise inclusive OR assignment operator. ^= Bitwise exclusive OR assignment operator. <<= Left-shift assignment operator. >>= Right-shift assignment operator. Fig The bitwise assignment operators Operatori Bitwise Operator Associativity Type () []. -> left to right Highest ! & * ~ sizeof (type) right to left Unary * / % left to right multiplicative + - left to right additive << >> left to right shifting < <= > >= left to right relational ==!= left to right equality & left to right bitwise AND ^ left to right bitwise OR left to right bitwise OR && left to right logical AND left to right logical OR?: right to left conditional = += -= *= /= &= = ^= <<= >>= %= right to left assignment, left to right comma Fig Operator precedence and associativity. 38 Campi di bit Campi di Bit Le componenti di una struttura le cui dimensioni (in bit) sono state specificate Permette un miglior utilizzo della memoria Devono essere definiti come int o unsigned Non è possibile accedere ai singoli bit Definire i campi di bit Segue una componente unsigned o int con un due punti (:) ed una costante intera che rappresenta la dimensione del campo Esempio: struct BitCard { unsigned face : 4; unsigned suit : 2; unsigned color : 1; }; Campi di Bit Campi di bit senza nome Campi utilizzati come padding in una struttura Niente si può memorizzare nei bit struct Example { unsigned a : 13; unsigned : 3; unsigned b : 4; } I campi di bit senza nome con dimensione zero allineano il successivo campo di bit ad una nuova unità di memorizzazione 40
11 1 /* Fig : fig10_16.c 2 Representing cards with bit fields in a struct */ 3 4 #include <stdio.h> 5 6 /* bitcard structure definition with bit fields */ 7 struct bitcard { 8 unsigned face : 4; /* 4 bits; 0-15 */ 9 unsigned suit : 2; /* 2 bits; 0-3 */ 10 unsigned color : 1; /* 1 bit; 0-1 */ 11 }; /* end struct bitcard */ typedef struct bitcard Card; void filldeck( Card * const wdeck ); /* prototype */ 16 void deal( const Card * const wdeck ); /* prototype */ int main() 19 { 20 Card deck[ 52 ]; /* create array of Cards */ filldeck( deck ); 23 deal( deck ); return 0; /* indicates successful termination */ 26 fig10_16.c (1 of 3) } /* end main */ /* initialize Cards */ 30 void filldeck( Card * const wdeck ) 31 { 32 int i; /* counter */ /* loop through wdeck */ 35 for ( i = 0; i <= 51; i++ ) { 36 wdeck[ i ].face = i % 13; 37 wdeck[ i ].suit = i / 13; 38 wdeck[ i ].color = i / 26; 39 } /* end for */ } /* end function filldeck */ /* output cards in two column format; cards 0-25 subscripted with 44 k1 (column 1); cards subscripted k2 (column 2) */ 45 void deal( const Card * const wdeck ) 46 { 47 int k1; /* subscripts 0-25 */ 48 int k2; /* subscripts */ 49 fig10_16.c (2 of 3) /* loop through wdeck */ 51 for ( k1 = 0, k2 = k1 + 26; k1 <= 25; k1++, k2++ ) { 52 printf( "Card:%3d Suit:%2d Color:%2d ", 53 wdeck[ k1 ].face, wdeck[ k1 ].suit, wdeck[ k1 ].color ); 54 printf( "Card:%3d Suit:%2d Color:%2d\n", 55 wdeck[ k2 ].face, wdeck[ k2 ].suit, wdeck[ k2 ].color ); 56 } /* end for */ } /* end function deal */ fig10_16.c (3 of 3) 43 Card: 0 Suit: 0 Color: 0 Card: 0 Suit: 2 Color: 1 Card: 1 Suit: 0 Color: 0 Card: 1 Suit: 2 Color: 1 Card: 2 Suit: 0 Color: 0 Card: 2 Suit: 2 Color: 1 Card: 3 Suit: 0 Color: 0 Card: 3 Suit: 2 Color: 1 Card: 4 Suit: 0 Color: 0 Card: 4 Suit: 2 Color: 1 Card: 5 Suit: 0 Color: 0 Card: 5 Suit: 2 Color: 1 Card: 6 Suit: 0 Color: 0 Card: 6 Suit: 2 Color: 1 Card: 7 Suit: 0 Color: 0 Card: 7 Suit: 2 Color: 1 Card: 8 Suit: 0 Color: 0 Card: 8 Suit: 2 Color: 1 Card: 9 Suit: 0 Color: 0 Card: 9 Suit: 2 Color: 1 Card: 10 Suit: 0 Color: 0 Card: 10 Suit: 2 Color: 1 Card: 11 Suit: 0 Color: 0 Card: 11 Suit: 2 Color: 1 Card: 12 Suit: 0 Color: 0 Card: 12 Suit: 2 Color: 1 Card: 0 Suit: 1 Color: 0 Card: 0 Suit: 3 Color: 1 Card: 1 Suit: 1 Color: 0 Card: 1 Suit: 3 Color: 1 Card: 2 Suit: 1 Color: 0 Card: 2 Suit: 3 Color: 1 Card: 3 Suit: 1 Color: 0 Card: 3 Suit: 3 Color: 1 Card: 4 Suit: 1 Color: 0 Card: 4 Suit: 3 Color: 1 Card: 5 Suit: 1 Color: 0 Card: 5 Suit: 3 Color: 1 Card: 6 Suit: 1 Color: 0 Card: 6 Suit: 3 Color: 1 Card: 7 Suit: 1 Color: 0 Card: 7 Suit: 3 Color: 1 Card: 8 Suit: 1 Color: 0 Card: 8 Suit: 3 Color: 1 Card: 9 Suit: 1 Color: 0 Card: 9 Suit: 3 Color: 1 Card: 10 Suit: 1 Color: 0 Card: 10 Suit: 3 Color: 1 Card: 11 Suit: 1 Color: 0 Card: 11 Suit: 3 Color: 1 Card: 12 Suit: 1 Color: 0 Card: 12 Suit: 3 Color: 1 Program Output 44
12 10.11 Le costanti di enumerazione Enumerazioni Insieme di costanti intere rappresentate da identificatori Le costanti di enumerazione sono come le costanti simboliche i cui valori vengono settati automaticamente I valori partono da 0 e sono incrementati di 1 I valori possono essere assegant esplicitamente con = Necessitano di nomi unici Esempio: 45 1 /* Fig : fig10_18.c 2 Using an enumeration type */ 3 #include <stdio.h> 4 5 /* enumeration constants represent months of the year */ 6 enum months { JAN = 1, FEB, MAR, APR, MAY, JUN, 7 JUL, AUG, SEP, OCT, NOV, DEC }; 8 9 int main() 10 { 11 enum months month; /* can contain any of the 12 months */ /* initialize array of pointers */ 14 const char *monthname[] = { "", "January", "February", "March", 15 "April", "May", "June", "July", "August", "September", "October", 16 "November", "December" }; /* loop through months */ 19 for ( month = JAN; month <= DEC; month++ ) { 20 printf( "%2d%11s\n", month, monthname[ month ] ); 21 } /* end for */ return 0; /* indicates successful termination */ 24 } /* end main */ fig10_18.c 46 enum Months { JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; Crea un nuovo tipo enum Months in cui gli identificatori sono settati agli interi da 1 a 12 Le variabili enumerazione possono assumere solo i valori della loro enumerazione 1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August 9 September 10 October 11 November 12 December Program Output 47
Capitolo 10 Strutture ed Enumerazioni
Capitolo 10 Strutture ed Enumerazioni Introduzione Definizione di Strutture Inizializzazione di strutture Accesso alle componenti di una struttura Utilizzo delle strutture con le funzioni typedef Esempio
8 maggio Le lezioni di giovedi 9 maggio e giovedi 16 maggio saranno tenute dalla dott.ssa Di Ianni. Vediamo le vostre soluzioni per
8 maggio 2002 Avvisi: Le lezioni di giovedi 9 maggio e giovedi 16 maggio saranno tenute dalla dott.ssa Di Ianni. Vediamo le vostre soluzioni per Esercizio 6.28 (Eliminazione dei duplicati) Scrivere un
Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)
2 maggio 2002. Avvisi:
2 maggio 2002 Avvisi: Risultati I Esonero disponibili nella pag. WEB e affissi nella bacheca piano terra secondo dente Soluzioni I Esonero disponibili nella pag. WEB Lezione di oggi Conclusione su puntatori/array
Capitolo 7 I puntatori in C
Capitolo 7 I puntatori in C Introduzione Dichiarazione e inizializzazione dei puntatori Gli operatori sui puntatori Chiamata di funzioni per riferimento Utilizzare il qualificatore const con i puntatori
Capitolo 7 I puntatori in C
1 Capitolo 7 I puntatori in C 7.2 Dichiarazione e inizializzazione di puntatori Variabili puntatore Contengono gli indirizzi di memoria come valore Le normali variabili contengono uno specifico valore
Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo
Introduzione al linguaggio C
Introduzione al linguaggio C Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Dott.ssa Francesca A. Lisi Sommario (II parte) Struttura di un programma
Capitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
Strutture, Unioni, Enumerazioni in C. Emilio Di Giacomo
Strutture, Unioni, Enumerazioni in C Emilio Di Giacomo Strutture Una struttura è una collezione di variabili raggruppate sotto uno stesso nome da questo punto di vista è simile a un array Le variabili
Se vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00
File position pointer File position pointer Indica la posizione da cui leggere/scrivere i prossimi byte Non un puntatore, ma un valore intero (specifica la posizione dall inizio file in termini di numero
Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
Capitolo 2 Introduzione alla programmazione in C
Capitolo 2 Introduzione alla programmazione in C Introduzione Un semplice programma C: Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica in
Gli array. slides credit M. Poneti
Gli array slides credit M. Poneti Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome e lo
Le strutture. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA
UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I" Prof. Franco FRATTOLILLO Dipartimento di Ingegneria Università degli Studi del Sannio Le strutture
FIL I Puntatori. Michele Nappi biplab.unisa.it. 15/12/2014 M. Nappi/FIL 1
FIL I Puntatori Michele Nappi mnappi@unisa.it biplab.unisa.it 15/12/2014 M. Nappi/FIL 1 Introduzione I puntatori Una delle caratteristiche più potenti del C, ma difficile da padroneggiare Si usano per
Struct, enum, Puntatori e Array dinamici
Struct, enum, Puntatori e Array dinamici Tratti dal corso del Dr. Francesco Fabozzi Corso di Informatica Tipi di dato in C Abbiamo esaminato diversi tipi di dato che il C mette a disposizione dell utente
24 aprile Qualche minuto di laboratorio
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente, piano terra. Speciale 1 o Esonero : soluzioni,
Esercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
Capitolo 11 Elaborazione di file
1 Capitolo 11 Elaborazione di file 11.1 Introduzione 2 I file Possono essere creati, modificati, ed elaborati da programmi scritti in C Sono utilizzati per la memorizzazione permanente dei dati La memorizzazione
Il linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
Capitolo 3 Sviluppo di Programmi Strutturati
Capitolo 3 Sviluppo di Programmi Strutturati Introduzione Strutture di controllo If Selection Statement If Else Selection Statement While Repetition Statement Ripetizione Counter-Controlled Uso di una
Dati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
Capitolo 6 - Array. Array. Array. Per riferirsi a un elemento, specificare. Formato: Array. Array
Capitolo 6 - Array Array Definizione degli Array Esempi con Array Array come parametri a funzioni Sorting Arrays Esercizi: Calcolo della Media, Mediana e Moda usando Array Array Multidimensionali 1 Array
Corso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
Scrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
Programmazione C. Puntatori Array come puntatori
Programmazione C Puntatori Array come puntatori Perché usare gli indirizzi Tutto in C ha un valore int a = 4; significa che il valore della variabile a è 4, e che potrà essere modificato dal programma
Capitolo 4 Controllo dei Programmi
1 2 Capitolo Controllo dei Programmi Introduzione Introduzione Ripetizione Counter-Controlled for Repetition Statement for Statement: Note e osservazioni switch Multiple-Selection Statement do while Repetition
Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
Laboratorio di Informatica
Corso di Laurea in Informatica e Tecnologie per la Produzione del Sofware (Track B) - A.A. 2016/2017 Laboratorio di Informatica Linguaggio C (Parte 1) docente: Cataldo Musto cataldo.musto@uniba.it Linguaggio
dott. Sabrina Senatore
dott. Sabrina Senatore Dipartimento di Informatica I puntatori 1 I puntatori Si usano per simulare la chiamata per riferimento Stretta correlazione con vettori e stringhe In generale, in C ogni variabile
Introduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Capitolo 9 - Input/Output formattato
Capitolo - Input/Output formattato Introduzione Gli Stream Output formattato con printf Stampa di interi Stampa di numeri Floating-Point Stampa di numeri e caratteri Altri indicatori di conversione Stampare
Linguaggio C: Strutture e Liste Concatenate Valeria Cardellini
Linguaggio C: Strutture e Liste Concatenate Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:
1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente
1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
Linguaggio C Variabili e tipi di dato
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Variabili e tipi di dato 2001 Pier Luca Montessoro - Davide
21 marzo Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo qui!!!
21 marzo 2002 (ri-)avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di e-mail: labinfo1@mat.uniroma2.it Spedire messaggi e esercizi solo qui!!! La struttura di selezione multipla switch Formato
Tipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
Capitolo 1 Introduzione
Capitolo 1 Introduzione 1 Storia del C 2 Outline Storia del C C standard library Vantaggi Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica
JAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
Il linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
Capitolo 4 Controllo dei Programmi
Capitolo Controllo dei Programmi 1 Introduzione 2 Introduzione Ripetizione Counter-Controlled for Repetition Statement for Statement: Note e osservazioni switch Multiple-Selection Statement do while Repetition
Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)
Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione
Introduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì
Introduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
Tipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
parte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure
Tipi user-defined Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano
Question 1: introduction to computer programming
Question 1: introduction to computer programming Question 1: introduction to computer programming What is a compiler? (4 points). Cos è un compilatore? (4 punti). c 2006 Marco Bernardo 1/14 Question 1:
parte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure
Tipi user-defined Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
Introduzione al linguaggio C
Introduzione al linguaggio C Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Prerequisiti ed obiettivi Programmazione strutturata Teorema di Bohm-Jacopini
Introduzione al C. Lez. 1 Elementi
Introduzione al C Lez. 1 Elementi Introduzione al C Strumento che adotteremo in queste esercitazioni per implementare e testare gli algoritmi visti a lezione Configurazione minimale suggerita: Editing
#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
Indice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2
Le espressioni in C++ (CAP 4) Indice Le espressioni in C++ : precedenze e associatività degli operatori Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 gli operatori
Programmazione C. Funzioni e procedure: Activation record. passaggio per indirizzo
Programmazione C Funzioni e procedure: passaggio per indirizzo Activation record 2. PASSAGGIO PER INDIRIZZO Dire alla funzione l indirizzo di memoria cui accedere Se occorre passare un array ad una funzione,
Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
I membri e le restrizioni di accesso
I membri e le restrizioni di accesso Sommario I membri Le restrizioni di accesso Separazione interfaccia da implementazione Accedere ai membri di una classe La visibilità dall'esterno dei dati e delle
Fondamenti di Informatica 12. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati
Introduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano.venturini@isti.cnr.it URL del corso http://www.cli.di.unipi.it/doku/doku.php/informatica/all-b/start Lezioni - Lunedì 16-18 Aula M - Martedì
Lezione 6 Struct e qsort
Lezione 6 Struct e qsort Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Struct Struct Fino ad ora abbiamo utilizzato
Introduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
Precisazione sui tipi in ANSi C
Precisazione sui tipi in ANSi C Tipi primitivi del C Un tipo è costituito da un insieme di valori ed un insieme di operazioni su questi valori. Classificazione dei tipi primitivi del C scalari aritmetici:
Corso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Introduzione alla programmazione in C++ 1 Un introduzione Che cosa è il C++? La programmazione procedurale La programmazione orientata agli oggetti La programmazione
Lezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
Capitolo 9 - Input/Output formattato
Capitolo - Input/Output formattato Introduzione Gli Stream Output formattato con printf Stampa di interi Stampa di numeri Floating-Point Stampa di numeri e caratteri Altri indicatori di conversione Stampare
Tipo di dati derivato, contenitore di altri tipi Esempio: definizione di una struttura Esempio dichiarazione di variabile:
LE STRUTTURE Tipo di dati derivato, contenitore di altri tipi Esempio: definizione di una struttura struct car { int wheels; //membri della struttura int cc; // ma anche array, puntatori o altre strutture
Stringhe. Prof. Lorenzo Porcelli
Stringhe Prof. Lorenzo Porcelli definizione Una stringa è un vettore di caratteri terminato dal carattere nullo \0. Il carattere nullo finale permette di determinare la lunghezza della stringa. char vet[32];
Laboratorio di Informatica I
Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento
Per fare riferimento ad un elemento, specificare il nomedel vettore. numerodi posizione(indice)
Vettore(Array monodimensionale) Sequenza di posizioniconsecutive (o locazioni di memoria) che vengono chiamate elementi del vettore Gli elementi hanno tutti lo stesso nomee sono tutti dell stesso tipo
Variabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
Dispensa di Informatica II.6
STRUTTURE La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la creazione di strutture e la loro gestione dinamica nel linguaggio C / C ++ La struttura ( struct ) Le strutture
Strutture Dati. Luca Abeni
Strutture Dati Luca Abeni Dati e Tipi di Dati Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti byte di memoria la variabile è
PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii
Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...
La sintassi del C APPENDICE H
APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i
Tipi di dato semplici
Tipi di dato semplici Informatica B Tipi di dati q In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double : numeri con virgola (doppia
Introduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
Gestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
C++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
Introduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
Lezione 1. Ing. Colazzo Sebastiano
Lezione 1 Ing. Colazzo Sebastiano Linguaggi macchina: lingua naturale di un particolare computer, esso consiste di sequenze di numeri (1 o 0) e dipende dalla macchina 0000111101 1111110001 0011001111 Linguaggi
Corso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 15 Corso di Informatica 2009-2010 Lezione 15 1 Liste concatenate Liste concatenate Una lista concatenata costituisce un metodo molto utile per immagazzinare
Allocazione dinamica della memoria
Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori
Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;
Array Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Il C supporta questo uso attraverso il tipo di dati array (o vettore): int
Tipi user-defined. parte dichiarativa globale:
Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano la definizione di
Tipi di dato semplici
Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma
Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...