Bună ziua și bun venit înapoi și această prelegere vreau să vorbesc despre relația dintre indicii și matrice.
Există o relație puternică și trebuie să înțelegem această relație înainte de a putea vorbi de
fapt despre aritmetica pointerială.
Deci, să începem și să ridicăm o colecție de obiecte de același tip pe care le puteți face referire la utilizarea unui
singur nume.
Știm că suntem destul de buni la mese, deocamdată am folosit caracterul Ray pentru câteva
secțiuni acum.
Este într-un fel în care puteți accesa utilizând un indice sau un indice din interiorul acelor paranteze pe care le amintim că
știm că matricele sunt bazate pe zero.
Au început 0.
Dar din nou este doar o modalitate de a deține mai multe luni cu aceeași variabilă.
Un pointer este o variabilă care are valoarea sa, o adresă de memorie are valoarea sa și poate să facă referință la o altă
variabilă sau constantă a unui anumit tip.
De asemenea, ar trebui să fim destul de clare în ceea ce privește indicatorul.
Pur și simplu deține o adresă de memorie.
Puteți utiliza un indicator pentru a ține adresa unor variabile diferite în momente diferite, dar trebuie să
aveți același tip.
Un pointer int trebuie să indice spre a sau adresa acestuia în matricele de tip și indicatorii par destul de diferiți.
Dar ele sunt foarte strâns legate și uneori pot fi folosite interschimbabil mai ales cu o matrice
de caractere.
Puteți crea de fapt un caracter un membru Will, care este un șir și puteți crea un pointer de caractere
care sunt, în esență, același lucru.
Există doar mici diferențe, indiferent dacă alocați sau nu memoria și eliberați-o cu un indicator de caracter cu
un caracter.
Nu trebuie să faceți asta, dar o matrice de caractere este, de asemenea, dimensiune fixă.
Deci, dacă creați un șir de caractere de caractere cu 20 ca dimensiune, puteți stoca doar 19 caractere cu un pointer de
caractere pe care puteți utiliza gestionarea dinamică a memoriei și puteți crește sau micșora dimensiunea.
Acesta poate fi mai eficient în ceea ce privește memoria, dar una dintre cele mai frecvente utilizări ale pointerilor în C
este ca indicii la măști.
Acesta este momentul când vă descurcați foarte des.
Cel mai adesea folosiți pointerii în special pentru caractere caracterul pointer este același ca o caracteristică matrice.
Motivele principale pentru utilizarea pointerilor pentru a ridica sunt cele de confort notații într-o eficiență a programului, astfel încât
să puteți folosi fie pe o matrice sau un pointer.
În multe cazuri, cu excepția cazului în care vorbești despre gestionarea dinamică a memoriei.
Dar, în majoritatea cazurilor, puteți și singura diferență este sintaxa sa.
E notația.
Este dacă utilizați sau nu un indice pentru a accesa un element sau dacă utilizați sau nu aritmetic
pointer dacă folosiți sau nu indicatorul de caractere pentru a indica direcția specifică a acelui element.
De asemenea, este mai eficient să utilizați și indicatorii de caractere.
Pointerii pentru a ridica, în general, rezultă în cod care utilizează mai puțină memorie și execută mai repede.
Deci, doriți să utilizați un pointer pentru caractere cât mai mult posibil și un pointer la alte tipuri de date,
de asemenea, deoarece este mai rapid și mai puțină memorie.
Utilizați pointerii peste cursă în cea mai mare parte.
Dacă aveți o matrice de 100 de numere întregi, știm ce înseamnă că tocmai spuneți în valori
o sută una este mărimea.
Asta înseamnă că poți stoca sute de numere întregi în acea matrice.
De asemenea, puteți defini un indicator.
Vom numi valoarea pointerului, deoarece indică matricea de valori și poate fi
utilizată pentru a accesa numerele întregi din această matrice.
Așa că spunem doar în valorile lui Star și știm cum să declarăm un pointer în acest moment.
Când definiți un pointer care este utilizat pentru a indica elementele matricei, nu
desemnați pointerul ca pointer de tip la Array.
Până în acest moment, tot ce am auzit vreodată este poignard și pointer să dubleze.
Corect, dar atunci când folosiți arrays nu vedeți un pointer corect că pointerul
real indică un element specific conținut în matrice.
Așa că ține minte.
În realitate nu indică.
Nu este de fapt o matrice completă atunci când ștergeți pointerul cu adresa valorilor.
Deci, pentru a seta pointerul de valori pentru a indica primul element array-urilor de valori.
Tot ce trebuie să faceți este să spuneți că valorile pointerului sunt egale cu valorile.
Nu trebuie să puneți adresa acolo, deoarece tabloul de valori este un pointer.
Asta trebuie să conduci în capul tău.
Toate aceste tablouri sunt indicii sub capotă.
Deci, dacă doriți să atribuiți primul element al unei matrice unui indicator, tot ce trebuie să faceți este
să specificați matricea din partea dreaptă a operatorului equals, iar partea stângă trebuie să aibă
valoarea indicelui.
Aceasta va indica prima adresă din matrice sau primul element.
Operatorul de adresă nu este utilizat.
Observați că compilatorul C tratează aspectul unui nume de matrice fără un indiciu ca un pointer
la matrice, astfel încât valorile specificate fără o auto-îngrijire au efectul de a produce un pointer la primul
element de valori.
Deci, ceea ce înseamnă asta înseamnă că acum poți să îndrepți valorile ulterioare în matrice doar prin incrementarea indicelui pentru a
merge la următoarea adresă și despre asta vom vorbi în următoarele câteva prelegeri și vorbim despre aritmetica
pointerului și este adevăr un lucru de notație și este, de asemenea, un lucru de
eficiență.
Deci, un mod echivalent de a produce un pointer la începutul valorii este de a aplica, de asemenea, adresa operatorului la
primul element al cursei.
Puteți face acest lucru în două moduri.
În orice caz este bine, dar puteți face și acest lucru, ați putea spune valori indicatorul adresa de valoare
Sub-Zero, care va stabili indicatorul de valoare la primul element din matrice.
Deci, puteți folosi acest lucru sau puteți spune valori punct, deoarece valoarea evident, fără ampersand și fără
indicele este un cod mai puțin mai puțin sau mai ușor de scris.
Acest lucru poate fi puțin mai clar pentru că nu știți neapărat că valorile reprezintă o matrice,
dacă nu vă uitați la declarație.
Dar din nou oricum este bine.
Valorile pointerului sunt egale cu valorile sunt valori pointer egal cu adresa de valoare Sub-Zero este chestiune de program sau
de preferință.
Și din nou este un lucru notații.
Deci, doar pentru a reitera atunci când aveți două expresii A-R văzute cu un asterisc A-R plus II acestea sunt echivalente în
sensul.
Dreapta.
Așadar, vrem să ne asigurăm că înțelegeți atât lucrul.
Dacă A-R este numele unui matrice puteți folosi pointerul și îl puteți dereferența și ambele pot funcționa dacă este vorba
de o variabilă a pointerului. O expresie precum A-R plus plus funcționează numai dacă este o variabilă a pointerului, deci nu puteți
face acest lucru.
Nu puteți incrementa un matrice spunând plus plus și așteptați ca acesta să meargă la elementul următor.
Puteți face acest lucru numai pe indicii de matrice.
Sunt indicii dacă avem A-R care este o matrice de pointer pointer și dorim să mergem la elementul următor.
Putem doar să creștem de fiecare dată.
Dar dacă spui așa, deoarece un sub este o matrice, o matrice este un pointer pe care îl poți derefera
spunând că sunt A-R care este A-R este un pointer.
Avem un semn A-R plus este același lucru.
Deci, în următorii câțiva ani, vom vorbi despre aritmetica pointerului și acest puternic se
referă la relația dintre matrice și pointeri indicii pot fi matrice.
Nu este un pointer iterează un element.
Deci, puteți folosi adresa unui pointer pentru a naviga printr-o matrice iterativă printr-un matrice.
Mulțumesc.