Salut binevenit suntem intr-o noua sectiune vom vorbi despre structuri acesta este un concept
nou in C care va permite sa grupeze obiectele impreuna cu array dar mai puternice.
Vreau să vorbesc despre ce structură este cum poți crea și cum poți folosi o structură, astfel că structurile din C oferă
un alt instrument pentru gruparea elementelor împreună.
Din nou, am menționat că sunt asemănătoare cu o matrice, dar de fapt sunt puțin
mai puternice dacă sunteți familiarizat cu programarea orientată obiect dacă programați în Java sau C ++ sau orice limbaj orientat pe obiecte.
Este un fel de gândire ca un obiect, dar numai cu membrii de date.
Fără comportament real, nu există metode.
Deci, este un concept puternic pe care noi îl veți folosi în multe programe
C pe care le dezvoltați, deoarece puteți grupa diferite elemente împreună într-un singur nume și acelea pot reprezenta, în esență, atribute de date.
Așadar, de exemplu, doriți să stocați o dată în interiorul unui program, o dată de obicei constă în trei
variabile zi și an.
Ați crea aceste trei variabile pentru a stoca aceste date.
De exemplu, ați spune că luna este egală cu nouă zile, egală cu 25 de ani, este egală cu 2015.
Să presupunem că programul dvs. trebuie să stocheze și data achiziționării unui anumit element.
În timp ce probabil ar trebui să mergi și să creezi alte trei variabile pentru fiecare dată pe care o
folosești în programul tău, pentru a vedea cum se poate ajunge foarte repetat la asta și vei termina să creezi o mulțime de variabile.
Dar ceea ce ar trebui să observați este că aceste variabile sunt legate logic.
Sunt toți întâlniri.
Ei ar trebui să fie grupați împreună.
Ar trebui să fie aproape propriul tip de date.
Și apoi ar trebui să le puteți crea și să accesați diferitele elemente pe care nu ar trebui
să le creați pentru a crea trei variabile separate pentru fiecare zi.
Deci, din nou, aceasta este în cazul în care vine în legătură cu obiecte dintr-o clasă care are trei atribute de date.
Așadar, ar fi mult mai bine dacă ați putea grupa împreună seturile a trei variabile.
Și acesta este exact ceea ce elementul de structură nu vede.
Vă permite să grupați aceste elemente diferite, împreună cu un anumit nume.
Puteți apoi să creați variabile diferite ale acelui nume și să accesați elementele din acel Nume
diferit de diferitele atribute de date pe care le numesc cu adevărat membri.
Deci, cum creați o structură în C ..
Structura foarte simplă a structurii structurii descrie modul în care este structurată o structură.
Ce elemente sunt în interiorul structurii.
Și ne referim cu ușurință la aceste elemente ca membri.
OK pentru că mai întâi trebuie să definiți structura sau să declarați structura care descrie ceea ce
este în interiorul structurii.
Și astfel puteți face acest lucru cu ajutorul cuvântului cheie struct.
Structura pentru aceasta vă permite să definiți o colecție de variabile de diferite tipuri de apel structura
pe care o puteți trata ca o singură unitate.
Foarte puternic.
Deci, folosind cuvântul cheie struct, tot ce trebuie să faceți este să furnizați un nume.
Și aceasta este denumită de obicei numele de etichetă.
În acest exemplu, avem un nume de etichetă a datei.
Dar vedeți cuvântul cheie struct, care este cuvântul cheie care îi spune compilatorului C, că
aceasta va fi o funcție specifică și că va avea funcții specifice care vă permit să grupeze elemente.
Deci struct este cuvântul cheie urmat de numele etichetei.
Și apoi aveți brațul creț de stânga în brațul drept curat urmat de semi-colonii.
Și apoi, în interior, puteți defini orice tip de variabile pe care doriți să le puteți pune
indicii chiar acolo.
Și aceștia sunt numiți membrii structurii.
Deci, aceasta este o declarație din nou definind o structură de date pe care compilatorul C o va înțelege.
Acesta îi spune compilatorului C ce structură de stat va conține trei elemente pe zi și pe an.
Nu există alocare de memorie pentru această declarație.
Din nou ceea ce spui este că aceasta este o structură care există.
Nu am început să o folosesc încă.
Tocmai am spus că așa va fi definit.
Aceasta va fi structura de date și din aceasta constă.
Numele variabilelor din structura lunii în ziua din anul în care
acestea sunt numite membri sau câmpuri membri ai structurii peer între brațele care urmează etichetei struct name date, astfel încât
numele etichetei.
Sintaxă foarte simplă pentru a grupa aceste elemente împreună în interiorul unui singur nume dat.
Și observați că este diferit de un tablou, deoarece nu există indici pe care nu specificați
de fapt o dimensiune, nu este exact același tip de date.
Puteți avea diferite tipuri de date și puteți avea multe altele.
Deci, cum ai folosi această structură.
Definiția datei definește un nou tip în limbă.
Puteți chiar să vă gândiți la acesta ca la un alt tip, la fel ca un int dublu sau flux, cu excepția acestui tip pe care l-ați definit.
Puteți să vă gândiți aproape la el ca la un enum, cu excepția faptului că deține doar o valoare.
Această structură de date poate conține trei valori, dar este un alt tip de date.
Variabilele pot fi acum declarate a fi de tip struct până în prezent.
Deci asta este exact ceea ce ai face.
Ați putea crea o nouă variabilă numită astăzi și va fi un tip de tip struct zi și astăzi va
fi în esență capabilă să dețină trei valori.
Și apoi, dacă trebuie să declarați mai multe date, puteți crea mai multe variabile de același tip.
Astfel, nu mai trebuie să aveți trei variabile separate pentru o stare de cumpărare.
Trei variabile separate pentru data curentă.
Trei variabile separate pentru o dată de facturare.
Puteți avea din nou o variabilă sau două variabile cu diferite instanțe din structura respectivă.
Sperăm că observați cât de puternic poate fi acest lucru.
Deci, aceste declarații de mai sus declară că o variabilă de tipul date struct este data acum
pentru că ați declarat că memoria variabilă este alocată pentru memoria structurii este alocată pentru
cele trei valori întregi sau celor trei membri ai fiecărei variabile.
Așa că memoria va fi alocată și, de asemenea, motivul pentru care va fi alocat este că nu există
indicii acolo.
Există indicii în structura pe care ar trebui să le alocați memorie pentru acel indicator.
Dar din moment ce astăzi face structura Este foarte simplu la lovit încet încet.
Acesta conține trei cenți.
Acești membri sunt alocate automat pentru dvs.
Dar asigurați-vă că ați înțeles această distincție de la diapozitivul anterior din acest diapozitiv curent.
Există o diferență între definirea unei structuri și declararea variabilelor acelui tip de
structură particulară.
Dreptul structurii de finanțare este din nou tonul compilatorului C.
Iată o structură și acestea sunt datele din interiorul acesteia.
Dar, de fapt, declarăm că o variabilă a acelui tip de structură de banda particulară spune că voi
începe să folosesc structura respectivă.
Am acum memorie alocată pentru cele trei elemente din exemplul nostru și pot accesa aceste
elemente și le pot seta.
Deci, cum accesați membrii într-un struct.
Deci, acum că știți cum să definiți o structură.
Și acum știi cum să declare variabilele de structură pe care acum știi să le poți înțelege cum să te referi
la acei membri ai bătutului.
Trebuie să le accesați dacă nu le puteți accesa pentru a vedea valorile sau pentru a stabili valorile.
Ar fi inutil, deci numele variabilei structurii nu este un pointer.
Deci, aveți nevoie de o sintaxă specială pentru a cere acces membrilor deoarece pointerii conțin, de obicei,
doar valoarea unei adrese.
Corect și dacă nu este un pointer, atunci veți avea nevoie de o sintaxă specială.
Poți să te referi la un membru al unei structuri scriind numele variabilei urmat de perioada pe
care o cheamă, de obicei numită ca operatorul punct.
Și apoi, după acea perioadă de operare punct, urmați numele variabilei membre în interiorul acelui struct,
perioada dintre numele variabilei de structură și numele membrului se numește operatorul de
selecție membru, denumit și operatorul punct.
Nu există nici un spațiu permis între numele variabilei perioada și numele membrului pentru a seta valoarea
zilei în variabila de astăzi la 25.
Aș face ceva de genul ăsta.
Numele variabilei care este astăzi.
Și apoi aș spune că nu există spații între fiecare parte.
Și apoi aș specifica numele elementului din interiorul definiției structurii care este ziua.
Și apoi aș aloca așa cum am atribuit orice alt număr întreg.
Aș folosi operatorul de atribuire egal cu o constantă literală aici în semi-colon foarte simplu.
Dacă vreau să semnez anul, aș spune astăzi un an și aș spune egal 2059 de exemplu și când
vreau să accesez membrul pentru valorile membre, de exemplu, dacă aș vrea să accesez valoarea membrilor lunii pentru a vedea dacă
este egală cu 12 Încă aș folosi sintaxa punctului respectiv, operatorul de selecție a membrilor.
Deci, puteți utiliza operatorul de selecție a membrilor pentru a accesa valorile membrilor și atunci când accesați acele variabile membre pe
care le puteți folosi la fel cum utilizați alte variabile pe care le puteți utiliza în
operațiunile aritmetice dacă sunt Aints urmați regulile acelor date tip.
Deci, în acest caz, putem compara de fapt la 12 folosind doar egal egal în interiorul unei instrucțiuni IF.
Și apoi, de exemplu, dacă era egală cu 12 am putea spune că luna următoare este egală cu 1, care ar fi o variabilă
locală pe care o vom aloca.
Deci, haideți să arătăm un exemplu aici definind o structură numită dată.
Avem trei numere întregi.
Anul montan știm că îl definim pentru că avem cuvântul cheie de structură și avem
acele bretele verticale și apoi observăm că brățara dreaptă are un semi-colon.
Și definiția în acest moment nu este alocată nici o memorie pentru această structură.
Și următoarea linie de fapt declarăm o variabilă de tipul respectiv.
Așa că acum alocăm memorie pentru o variabilă numită astăzi, care conține trei elemente esențialmente de
tip Montane de tip și putem să alocăm date acelor trei elemente din interiorul aceleia care au lovit astăzi doar prin
utilizarea acelui punct membru al accesului.
Așa că astăzi luna aceea este nouă.
Astăzi, în ziua de 25 și astăzi în anul 2015, atunci am fost dornici să tipărim sau să accesăm acele date pe care le-am accesa în același
mod după ce l-am atribuit, am folosi doar acea selecție a membrilor.
Astăzi în acea lună Astăzi. com astăzi zi și din nou putem efectua operațiuni aritmetice pe ea pentru
că nu este.
Vom folosi procentul D sau dacă vrem să îl formatăm, am putea spune procentul la 10 2d.
Deci, aceasta este o sintaxă destul de simplă foarte ușor de creat și definit structuri și apoi de a
le folosi și apoi de a le accesa folosind operatorul de selecție punct membru cum despre structuri și expresii Ei bine
tocmai ați văzut că am putut accesa datele și folosind o expresie aritmetică.
Și nu este altfel.
Deci, dacă vine vorba de momentul evaluării membrilor structurii de expresie,
urmați aceleași reguli ca variabilele obișnuite.
Dacă aveți membri în interiorul acelor numere structurate, puteți face aceleași reguli ale oricărui alt număr întreg.
Puteți aplica scăderea adiției și așa mai departe.
Dacă este vorba de un caracter de boffer puteți face doar regulile bufferelor de caractere puteți adăuga minus
buffere de caractere.
Știi că lucruri de genul ăsta, de obicei, nu plutesc așa.
Două știți toate tipurile de date pe care tocmai le-ați urma aceleași reguli
atunci când le folosiți în interiorul expresiilor.
Deci, iată un exemplu.
Eu spun Azi. com ani împărțit la 100 plus unul perfect valabil deoarece ani în int.
Nu diferă de utilizarea unei variabile regulate de tratament.
Pur și simplu accesați-o diferit utilizând acest operator de selecție a membrilor.
Acum există variante, există modalități diferite de a defini structurile.
Singurul lucru pe care îl vedeți este flexibilitatea și vă permite să definiți o structură în multe
moduri diferite, astfel încât să puteți vedea sintaxă diferită când definiți o structură.
Primul exemplu pe care ți-am arătat-o ​​este într-adevăr cel pe care ar trebui să-l
urmezi ar trebui să ai întotdeauna un nume de etichetă și ar trebui să definiți structura într-un singur loc codul și apoi să declarați variabilele acestuia
în altul.
Dar văzând că este foarte flexibil.
Puteți defini structuri și declara variabile în aceeași linie și puteți defini,
de asemenea, structuri anonime sau structuri numite.
Deci, există o mulțime de flexibilitate.
Este valabil să declarați o variabilă ca făcând parte dintr-o anumită structură în același timp
în care definiți structura.
Puteți pune numele variabilei în partea de jos.
Deci, faceți asta care include numele sau numele variabilei înainte de terminarea semicolonului
definiției structurii și puteți atribui, de asemenea, valori de inițializare acelor variabile în modul normal pe care
îl atribuiți oricăror variabile.
Deci, haideți să ne uităm la variația de definire a structului.
Făcând-o în același timp în care îl definiți, puteți declara o variabilă, deci în acest caz ne-am definit
data structului, dar și Ducrot a creat o variabilă numită astăzi pentru că se termină o bretonă dreaptă
care este numele înainte de semi- colon care face atât crearea puternică a variabilei de
tip DATE.
Și definiția structurii.
Foarte frumos.
Deci, în acest caz creați o variabilă a structurii pe care o menționăm și care are de asemenea
o instanță a structurii pe care o numim astăzi, declarată în același timp că structura este definită.
Deci astăzi este o variabilă de dată de tip.
Am făcut totul într-o singură și ați putea scrie, după ce ați făcut-o
astăzi, că ați putea inițializa inițializa acele variabile folosind parantezele și apoi spunând că luna este egală cu cinci egale.
Deci, la fel cum inițializați orice alte numere întregi.
Acum, din nou, o altă modalitate de a crea o structură.
Ai putea crea o structură fără nume.
Acesta este un pic mai limitat pentru că nu puteți face prea multe cu el, dar nu trebuie să furnizați de fapt un nume
de etichetă.
Amintiți-vă că numele etichetei se află în partea dreaptă sus, după cuvântul cheie struct din exemplele
anterioare, data etichetei.
Dar nu trebuie să furnizați acea dată dacă toate variabilele unui anumit tip de structură
sunt definite atunci când structurile definite decât numele pot fi omise.
Și ceea ce înseamnă cu adevărat că veți folosi doar structura o singură dată.
Așadar, am putea să spunem struct zi în lună și apoi să declare variabila același lucru.
Dar veți observa că nu există un nume de etichetă acolo după cuvântul cheie lovit.
Acesta este doar un accident vascular cerebral.
Vom folosi o singură dată, așa că vom crea variabila astăzi și apoi nu o vom folosi niciodată.
Și chiar asta este dezavantajul limitării pe care niciodată nu vrei să o faci decât dacă
ai un fel de structură locală pe care o folosești, dar nu poți defini mai multe exemple de acest lucru.
Dacă definiți structura în acest fel ca o structură No-Name o structură neîntreruptă toate variabilele de tipul structurii pe care doriți
ca programul dvs. să fie definit în instrucțiunea pe care ați putea crea mai mult de o variabilă
pe care ați putea-o face astăzi virgulă și apoi altă astfel încât să puteți crea
mai multe variabile și puteți inițializa mai multe variabile.
Dar acest mod este un pic limitat pentru că nu puteți după acea declarație de variabilă în partea inferioară nu
puteți crea mai multe variabile.
Există trei moduri de a defini diferite structuri.
O modalitate este de a defini structura cu un nume de etichetă și de a nu crea variabila pe care o creați variabila
într-o instanță separată atunci când memoria este alocată altor metode de a crea variabila și structura și în
același timp în care ați avea o etichetă Nume.
Și asta v-ar permite să creați alte instanțe sau alte variabile ale acelui tip lovit mai
târziu în programul dvs. sau în această a treia opțiune unde ați putea crea un struct unnamed fără nume și doar variabila din partea
de jos.
Și din nou, puteți inițializa toate aceste lucruri ori de câte ori creați fie variabilele folosind doar bretele curry și
așa mai departe.
Deci, inițializarea structurilor de inițializare a structurilor este foarte asemănătoare cu aranjamentele de inițializare.
Elementele sunt enumerate în interiorul unei perechi de C, fiecare element fiind separat de o virgulă.
Nu există lucruri noi de învățat aici. Valorile inițiale listate în interiorul acoladelor trebuie să fie
expresii constante.
Nu puteți utiliza variabilele.
Seamănă exact cu o matrice.
Aici creăm o variabilă de astăzi de tip struct date și spunem că primul membru este egal cu 7 Cel de-al
doilea este 2.
Și a treia este 2015, care corespunde zilei din luna, pentru că aceasta este ordinea modului în care acestea au
fost definite în struct.
Deci, la fel ca o inițializare a matricei, ar putea fi enumerate valori de frică decât cele cuprinse în structură.
Nu trebuie să oferiți toate cele trei.
Ai putea oferi doar două.
Și asta ar inițializa luna din zi și nu va inițializa anul.
Ai putea, de asemenea.
Deci, acest lucru ar stabili data de la o lună la 12 zile o zi la 10.
Dar nu oferă nici o valoare inițială avocaților la data acelui an, puteți specifica și numele membrilor din lista
de inițializare.
În acest fel, nu trebuie să aveți nicio comandă.
Le puteți pune în ordinea dorită și nu depindeți de asta.
Deci ai putea face ceva de genul memoriei egal cu valoarea și data structurii.
Data în care ai putea spune că luna este egală cu 12 În regulă.
Deci, sintaxa inițială a acestui lucru este stabilirea elementului în interiorul coastelor cu buclă cu punct și apoi doar atribuirea
valorii acelei luni fiind egală cu 12.
Punctul Comma dot este egal cu 10.
Ai nevoie de acest punct punct este important, așa că nu uita de asta.
Nu aveți nevoie de instanță înainte de punct.
Deci, acest lucru va determina doar componenta anului din variabila structurii de date.
Astăzi 2015 și următorul exemplu.
Deci, aici doar spunem pentru că vă amintiți că puteți omite unele dintre celelalte variabile membre și în acest caz
ne întâlnim luna și astăzi.
Așadar, vom stabili anul până în 2015, iar cazul precedent am omis anul și
am stabilit luna și data de 12 și, respectiv, 10.
De asemenea, putem face o asociere cu literale compuse.
Ei bine, ce anume este exact un compus literal.
Puteți atribui valori unei structuri într-o singură instrucțiune utilizând ceea ce este cunoscut ca un compus literal.
Cred că acest lucru ar putea fi doar în C 11, dar aici avem astăzi.
Să presupunem că am creat o variabilă struct structura de azi și apoi plasăm de fapt în interiorul
parantezelor struct zi.
Și în interiorul bretelelor curly spune nouă virgulă 25 virgulă la 15.
Și acesta este un literal compus.
Această declarație poate apărea oriunde în program.
Deci, spre deosebire de inițializarea sau atribuirea de valori în membrul punct, puteți pune acest lucru
oriunde în program, după ce ați inițializat deja struct struct structura.
Nu este o declarație de declarație.
Aceasta este o alocare literală compusă.
Operatorii typecast au folosit pentru a spune compilatorului tipul expresiei.
Deci, ai nevoie de acele lucruri în paranteze care sunt o dată a structurii cast.
Lista valorilor urmărește distribuția pentru a fi atribuită membrilor structurii în
ordinea în care este ordonată.
Așa că este listat în același mod ca și când ai inițializat variabila structurii.
Din nou, avantajul este că nu este necesar să alocați individual fiecare variabilă membru pe
linii separate.
Puteți face totul într-o singură linie și spuneți OK, aceasta este noua valoare pentru această variabilă de astăzi.
De asemenea, puteți specifica valori în notația membrului.
Așa cum am menționat, ar trebui să o faci într-o singură linie ca asta sau pe linii separate.
În felul acesta seamănă cu inițializarea, dar încă mai faci literalurile compuse, avantajul utilizării acestei abordări
este că argumentele pot apărea în orice ordine.
Deci, la fel ca în trecut, cheia în diferența dintre aceste sarcini este că nu se întâmplă
în timpul inițializării.
O faceți altundeva în program pentru a atribui noi valori acelui tip.
Deci, o mulțime de informații bune în această lecție am vorbit despre accidente vasculare cerebrale și cât de
puternice sunt acestea și cum putem grupa diferite elemente sau variabile diferite într-un singur nume.
Definim această structură.
Există mai multe moduri de a defini o structură și apoi trebuie să declarem o variabilă odată
ce avem acea variabilă pe care o putem accesa atribuiți datele acelei structuri folosind operatorul de selecție a punctului membru.
Apoi am discutat, de asemenea, unele dintre diferitele notații și diferite moduri de a
face lucrurile, precum și inițierea.
Vom folosi structurile destul de puțin.
Voi avea câteva provocări pentru a vă ajuta să vă familiarizați cu sintaxa, dar acesta este doar
începutul structurii.
De asemenea, trebuie să vorbim despre structurile imbricate.
Cum poți folosi indicii și structuri și așa ceva.
Deci noroc.
Aceasta va fi o secțiune distractivă și interesantă.
Mulțumesc.