• Non ci sono risultati.

Tipi derivati: struct

N/A
N/A
Protected

Academic year: 2021

Condividi "Tipi derivati: struct"

Copied!
7
0
0

Testo completo

(1)

Tipi derivati: struct

Andrea Marin

Universit`a Ca’ Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

a.a. 2011/2012

(2)

Aggregazione di dati eterogenei

I Un array `e un tipo derivatoche pu`o essere visto come un’aggregazione di dati dello stesso tipo (omogenei)

I L’accesso ad ognuno di questi avviene mediante un indice

I In C `e possibile definire anche aggregazioni eterogeneee

I Per esempio una data potrebbe essere composta da un int che rappresenta il giorno, una stringa di 10 caratteri che rappresenta il mese, e un altro int che denota l’anno

I Per definire queste aggregazioni si usa lo struct

(3)

Esempio

s t r u c t d a t a { i n t g i o r n o ; c h a r mese [ 1 1 ] ; i n t anno ; } ;

s t r u c t d a t a v a r i a b i l e ;

I variabile `e una variabile di tipo struct data

(4)

Accesso ai campi della struttura

I Per leggere o scrivere in una locazione di una struttura si usa la sintassi nome variabile.nome campo

I Esempi:

I varibile.giorno = 30;

I strcpy(variabile.mese,‘‘Marzo’’);

I variabile.giorno = variabile.giorno-10;

(5)

Semplificare la sintassi: typedef

I La keyword typedef consente di definire nuovi tipi

I Esempio:

typedef long int** miotipo;

Far`a s`ı che il compilatore sostiuisca ogni occorrenza di miotipo con long int**

I Nel caso di struct:

typedef struct data tdata;

consente di definire variabili di tipo struct data semplicemente come:

(6)

Allocazione dinamica di strutture

I Come le normali variabili anche le strutture possono essere allocati in heap

s t r u c t d a t a { i n t gg ; c h a r mese [ 1 1 ] ; i n t mese ; } ;

t y p e d e f s t r u c t d a t a t d a t a ;

i n t main ( ) { t d a t a ∗ p n a t a l e ;

p n a t a l e = m a l l o c ( s i z e o f ( t d a t a ) ) ; i f ( p n a t a l e ) {

(∗ p n a t a l e ) . gg =25;

s t r c p y ( (∗ p u n t ) . mese , ‘ ‘ D i c e m b r e ’ ’ ) ; (∗ p n a t a l e ) . anno =2011;

. .

f r e e ( p n a t a l e ) ; }

}

(7)

L’operatore − >

I se pc `e un puntatore ad una struttura, per accedere ad un campo, al posto della sintassi:

( ∗ pc ) . campo si pu`o usare la sintassi:

pc−>campo

I Esempio:

p n a t a l e −>gg = 2 5 ;

Riferimenti

Documenti correlati

Molto spesso il polo nell’origine, semplice o doppio, viene volutamente introdotto nella funzione di trasferimento del regolatore (posto a monte del sistema controllato), al fine

L’integrazione viene fatta in- tegrando, tutte le componenti per un passo, poi per il passo successivo, e non una componente per volta per molti passi..1. Proiettile

Tipi strutturati, Paolo Bison, FI08, 2008-09-29 – p.17. user-defined type

Fondamenti di Informatica Ingegneria Meccanica. Università di

Fondamenti di Informatica 1 A.A.. variabili, costanti, espressioni) sono associati ad un tipo che li caratterizza..  tipo

Fondamenti di Informatica 1 A.A. variabili, costanti, espressioni) sono associati ad un tipo che li caratterizza..  tipo

 valore di ritorno di un metodo per definire una procedura void azzera(){x=y=z=0;}. Tipi e array in Java , Paolo

=⇒ Non serve specificare la dimensione del vettore nel parametro formale ( `e un puntatore al tipo degli elementi del vettore).. Quando passiamo una matrice ad una funzione, per