Sunteți pe pagina 1din 1

Structuri

Exemplu foarte simplu de structură:


struct punct{
int x; // are ca şi membri coordonatele unui punct
int y;
}; // se incheie definitia structurii

struct punct_st p1; // asa se instantiaza tipul structura

Pentru a nu scrie struct la fiecare instanţiere a tipului (adică la crearea de variabile de


tipul respectiv), se poate crea un nou tip astfel:
typedef struct p{ // p e numele structurii, nu este obligatoriu
int x;
int y;
}punct; // creaza tipul punct

punct p1; // se instantiaza tipul punct, ca orice tip standard;

Definiţie O structură este o colecţie de una sau mai multe variabile (de diverse
tipuri) grupate sub un acelasi nume.
Variabilele dintr-o structura, spre deosebire de cele dintr-un array, pot fi de diferite
tipuri. O structura poate contine orice tip de date, inclusiv alte structuri sau array-uri,
mai puţin declaraţii ce implica recursivitate. Fiecare variabila dintr-o structură se
numeste membru al structurii.
punct p1, p2={0,0}; // initializam p2;
p1.x=0;
p1.y=0; // atribuim valori campurilor; echivalenta ca si efect cu
initializarea de mai sus
scanf(“%d %d”, &p1.x, &p2.y); //citirea campurilor unei structuri; nu se
poate citi structura intreaga!!!
p1=p2; // duplicam structura p2;
Daca au acelasi tip, se poate atribui o structura alteia: se vor copia membrii
structurii p2 in membrii corespunzători ai structurii p1.
Atentie la structuri care contin pointeri catre zone de memorie alocate dinamic!!!!!
Problemă Citiţi 2 numere complexe şi afişaţi suma lor. Memoraţi numele într-o
structura complex.

Literale compuse
Literalele compuse sunt obiecte fără nume, de tipul indicat prin casting:
struct student candidat;
candidat = (struct student){“Marinela”, 10.0};

void afis_student(struct student s);


afis_student((struct student){“Gigel”, 8.6});

S-ar putea să vă placă și