Initiation au C   cours n7

Initiation au C cours n7

-

Documents
37 pages
Lire
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Les types structAlias de type avec typedefLes types unionInitiation au C◦cours n 7Antoine Min´e´Ecole normale sup´erieure5 avril 2007◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 7Les types structAlias de type avec typedefLes types unionPlan du coursLes types de donn´ees structur´ees :struct,union.Les alias de type : typedef.◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 7Les types structAlias de type avec typedefLes types unionRappels sur les types CTypes scalaires :Types de base :entiers : int, unsigned, char, long, etc.flottants : float, double.Types pointeurs : type *.Types compos´es :Types tableaux (homog`enes) : type [].Types structures et unions (h´et´erog`enes).◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 7Les types struct D´efinition de structuresAlias de type avec typedef Manipulation de structuresLes types union Structures et tableaux imbriqu´esLes types struct◦´Antoine Min´e — Ecole normale sup´erieure Initiation au C – cours n 7Les types struct D´efinition de structuresAlias de type avec typedef Manipulation de structuresLes types union Structures et tableaux imbriqu´esNotion de structureStructure : ou“enregistrement”.Permet de grouper plusieurs valeurs dans une seule variable.◦ ◦Exemple : compte (Suisse) = n banque + n compte + solde.Une structure est compos´ee d’un nombre fix´e de champs :nomm´es, (banque, compte, solde)typ´es. (int pour banque ...

Sujets

Informations

Publié par
Nombre de visites sur la page 13
Langue Français

Informations légales : prix de location à la page  €. Cette information est donnée uniquement à titre indicatif conformément à la législation en vigueur.

Signaler un problème
LestypesstructAilsaedytepvaceytdepeesfLpetynisunotnA´niMenioonmrlaseeE´ocelreInitiaup´erieuruoc7nsnoitCua
AntoineMin´e
5 avril 2007
´ Ecolenormalesupe´rieure
Initiation au C cours n7
iounniotnAe´niMenueere´iraiitnItileno´Ecoesuprmal
Lestypesdedonne´esstructur´ees: struct, union.
Lesaliasde type :typedef.
nsru
Plan du cours
7uanoocCstruypesLestevaepytedsailAtcesypstLeefedypct
esCinIetaitre´prueirsou7nnaiocuCniMenie´nAotormalesu´Ecolen
Types scalaires : Types de base : entiers :int,unsigned,char,long, etc. flottants :float,double. Types pointeurs :type *.
Typescompos´es: Types tableaux (homogenes) :type []. ` Types structures et unionsse.)eng`ro´eeth´(
LpetyecavpetydeasilAtcurtssepytsestypurleelssRappinnoepusseytedLf
reInitiaup´erieuocruns7itnouaC
types
Les
struct
pyaeevtcpydefeeLesstructAliasdeteLpytsuctusStrturetrucdnsetaoipiluMsnaretuuctresndioitne´Dnoinusepytsnormalese´EcoleioeniM´nAtnquris´euaelbmixeserbatt
ectypeavdetyliasusinytepLfseepedstdeontinieD´onalupinaMserutcurrtssAtcuseLepytitnoedtsurtcruseStructuresettablxuaerbmi´uqioNseontistdectrueureMin´eintoAnamrouselcE´nelo
Unestructureestcompose´edunnombrexe´dechamps: nomme´s,(banque,compte,solde) type´s.(intpourbanqueetcompte,floatpoursolde) Leschampspeuventeˆtredetypedierent. ´
Exemple : compte (Suisse) = nbanque + ncompte + solde.
Permet deplusieurs valeurs dans une seule variablegrouper .
Structure :ou “enregistrement”.
Une
variablestructur´eeeutˆit:pemeasnoipeutlr´e champ par champ,)urjo`asemie,tcru(el comme un tout.n)ioaitini(,copie,plisationnufenotcsaasega`
eiru´preittaIeinuCcionan7ours
´eupesalrmnolecoE´e´niMeniotnAeuriInreiaitontiCuaruoc7ns
De´clarationdetype:tiliselemot-cl´eolbgitaioero,unstruct.
Effet :dareu´eclveaunnoutypede structure de nommastruct, dechampsnomme´schamp1a`champN, les champs ont pour typetype1a`typeN.
mastruct,champ1`achampNeurscatentiesidrtdetneˆioevd.
Syntaxe structmastruct{ type1 champ1;
. typeN champN; } ;
MsnapilurtcuuteritiondesionD´enpytsnusedepyeLfeeaypctveiaAletsdurtcsetstspyeLssepcurt´rutsearat´ecldetyionsixbmeluae´DsiruqtuuctrsSabttseresednoitaerutcurt
Ec´´eineMintoAn7n
Exemple struct compte { int banque; int compte; float solde; };
Sur un Intel 32 ou 64 bits, un objet de typecompteoccupera (sizeof) 12 octets.
cCusruotiationaieureInielus´preloneroam´rutcurtsensioatarsspetydeiruqixbme´lce´DsreseuctuleauttabLeurtclAaitspysetsvectypedsdetypeaDnoinusepytseLfeuctresndioitn´etaoipiluMsnautersStrturetrucndes
ineMAnto´Ecin´enieIurienaioattiamronelore´pusel7n
Letypeassocie´a`unestructureestdelaforme:structmastruct.
Exemple struct compte cb, pel;
Ne pas confondre : nom de type, de variable, de champ.
De´claredeuxvariablestructur´eesdetypecompte.
cuCrsou
Effet :cealernu´dearevbliavariablede type structuremastruct pr´ealablementde´ni.
Syntaxe structmastruct variable;
elssirbaedavitnoeestur´trucmixuaelbatteseruralaecD´esu´iqbrtrucpessasdetAlivaceytepedLfytepytseLesManipulationdetsurtcrusetSurtctyessupeonnieD´itinednourtsrutc
lbatteserbmixuaeAcesu´iqxcauesc`sahpmepytinus´DnoineontistdectruesuraMinupalitnoedtsructuresStructurepytseLdetyliasuctAsstrLfseepedceytepva
Effet :hcmaecelrenee´´frpchampde la variablevariable
Op´erateurpoint.
7
Syntaxe variable.champ
modifiable (lvalue). Exemple :cb.solde -= 200.25 ;
utilisable dans une expression, Exemple : ;float fric = cb.solde + pel.solde
ationauCcoursnus´preeiruIeinitolEc´´elemaorennAniMeniot
Initialisationoi:nocmmpeuourtnableau.`adalcl´eatar
Syntaxe structmastruct variable= {expr1,...,exprN};
lordredesexpressionsestlemeˆmequeceluideschamps, leschampsmanquantssontinitialis´es`a0ouNULL, on peut imbriquer les initialiseurs entre{et}. (structureset/outableauximbriqu´es)
Exemple struct compte cb = { 99, 1345, 0.1 };
oianCucuosrn7erp´urienieIatticE´neloamrousele´niMeniotnAerutsiruqixbminite´IsatioalistrucndescurtsednrtSserutseretuucauleabttndestruc´enitiopilutaoiuterMsnactveedypetsdeaypnuseDnoieLfepytsLelAaiurtcsetstspy
pysenuoidefeeLtseavectypiasdetypurtslAtctseLsepybaelesttuterrtcuresSuctuestriondtalupinaMserutcutresndioitn´enDneMintoi´Econ´eAreeuitIntiiaauononellamrpuseire´
Exemple
Copie :olruetare´p=´sseruedvsraailbesstructur´ees.ˆeutpelitieutr Effet :ipocahcea`pmamchp.
Cocruns7
Cene´taitpaspossibleaveclestableaux!
new cb.banque = cb.banque ; _ new_cb.compte = cb.compte ; new cb.solde = cb.solde ; _
Initialisation par recopie : ;struct compte visa = cb
new_cb = cb ;
est´equivalent`a
bmiruaixCspouqe´estriesdresuctu