Bună ziua și bun venit, deoarece aritmetica pointerului este un fel de concept dificil de înțeles și
de înțelegere. Am vrut să trec printr-un ultim exemplu care demonstrează într-adevăr acest concept.
Ea face o treabă bună.
Și dacă înțelegeți acest exemplu, nu veți avea probleme cu aritmetica pointerului.
Deci, primul exemplu pe care vreau să-ți arăt este efectul adăugării unei valori întregi la un pointer.
Deci atunci când facem atunci când facem pointer aritmetic cu adăugare putem vedea de fapt cum funcționează în termeni
de adresa.
Deci, aici în acest program tot ce fac este să creez un șir de caractere de caractere.
Se numește șir.
Apoi, creând un pointer de caractere numit P și trecând pe toată lungimea șirului, care este
multiplu.
Așa că trec prin întreaga matrice și doar cele patru bucle de
bază, lungimea rezistenței lui Sturt are multiple multiple și apoi imprim fiecare șir sau caracter efectiv în interiorul acelei matrice.
De asemenea, fac asta, afișând adresa și apoi adresa cu ea cu numărul real pe care
l-am adăugat.
Așadar, haideți să ne uităm doar la rezultatul acestui lucru, deoarece ieșirea demonstrează un exemplu foarte bun de aritmetică a
pointerilor.
Așa că hai să mergem la blocurile de coduri și să rulez.
Deci aici suntem în blocuri de coduri Am curățat codul un pic.
Am folosit o lungime de 30 de lungime pentru ca este extra inclus si vreau doar sa rulez acest lucru.
Deci, când conduc acest Witchell observă că vă arată cât de memorie arata memoria și că vă
arată valorile care fac aritmetica pointerului.
Deci, dacă spui mai multe Sub-Zero sunt multiple, conține doar un șir.
Dar dacă ne uităm la asta și spunem că privim la conținutul matricea multiplii de zerouri, multiplii se naște
ca un spațiu și apoi restul sunt șir.
Aceasta este teoria imediat ce este aceeași cu adăugarea lui 0 la pointer și dereferencing adăugând 1 și adăugând 2
și vă arată cum puteți face pointer aritmetic prin dereferencing pointer în sine și adăugarea de numere
la ea.
Deci pointer plus 7 dereferencing pe care îl obțineți G.
Apoi, în a treia coloană, vă prezint adresele reale pe măsură ce creștem.
Deci, adresele fiecărui element din matrice utilizând amperajul și doar pe matricea de caractere pe care o vedem
este 0 6 0.
TFF pentru elementul 0 și așa mai departe.
Apoi, ne uităm la adresele dacă adăugăm doar la pointerul însuși fără să îl dereferențăm
și veți vedea linia de adrese.
Și atunci putem privi sintaxa pentru a vedea ce se întâmplă aici în ceea ce privește primul lucru
pe care noi îl afișăm este indexul din matrice, care este doar un contor.
Apoi vom afișa un procent pe care se află caracterul din matrice.
Următorul lucru pe care îl afișăm este dereferența indicatorul Plus eu așa că aici ceea ce facem este
că ne afișăm I.
Și apoi afișăm dereferența un indicator plus valoarea reală.
Așa că vom afișa ca D doar cardul.
Contorul real și apoi punctul C sunt dereferențele noastre.
Deci P este dreptul nostru.
P este pointerul nostru Tocmai spunem P Plus prin aritmetica pointer și apoi îl dereferențăm.
Și apoi pentru a obține adresele tot ceea ce trebuie să facem
pentru a obține arta Anders să spună ampersand multiple și apoi indicele pentru a obține primul obține adresa pointerului chiar aici, doar spunem P Plus primesc contorul real care
vă arată cum incrementing că P ar face doar P plus la sută D.
Dar face o treabă bună de a demonstra diferitele moduri în care memoria pe care o îndreptăm către
adrese este de fapt afișată și cum sunt echivalente cu diferiții indici dintr-o matrice.
Iar indicii reali am crezut că asta a făcut o treabă bună.
Vreau să mă uit la încă un exemplu care face o altă treabă bună cu privire la
aritmetica pointer cu lungi.
Pentru că aici acestea sunt numere întregi, așa că trebuie să faceți este să adăugați una și merge automat la următorul octet.
Deci, haideți să ne uităm la ceea ce facem noi, Laux.
Deci, în acest exemplu, vreau să demonstrez, de asemenea, cum puteți face același lucru cu un pointer
lung și lung, cu pointerul de caractere fiind doar o matrice de caractere șir.
Dar chiar și pentru matricele lungi care sunt de dimensiuni diferite, putem totuși să le repetați folosind un pointer și puteți
vedea cum se schimbă de fapt numărul de octeți, chiar dacă spunem că avem
un lung pointer și adăugăm 1 la acesta, de fapt adăugăm 4 octeți la el, deoarece O lungime
este puțin mai mare și vom vedea că în acest exemplu, deoarece suntem pe acest exemplu în blocuri de cod.
Deci, iată exemplul nostru din nou, avem un contor de imagini.
Un contor de buclă.
Avem o matrice lungă de 15 ore, specificând L, punând sufixul acolo, specificându-i pe Elle
dorințele lor.
Avem un pointer lung care indică mai multe Gahn, deoarece este o matrice pe care nu trebuie să o
folosim pe adresa operatorului.
Vom trece prin toată lungimea aici, putem folosi Stirling's pentru care trebuie să folosim mărimea lui.
Și de fapt, trebuie să o împărțim cu fiecare loc din matrice.
Deci dimensiunea totală împărțită la un singur punct în matrice.
Asta e și vrem să sarăm pentru că acestea sunt Amintiți-vă adresele noastre care cresc cu câte
4 octeți fiecare.
Și din nou ceea ce facem aici este că afișăm doar pointerul versus matrice și vă arată
cum sunt legate.
Apoi afișăm numărul total de octeți care se află pe sistemul nostru.
Și astfel, acest lucru demonstrează încă o dată modul în care matricele sunt legate de indicii.
Deci, dacă vom rula acest lucru vom vedea de ieșire similare, dar ceea ce este un pic diferit aici este
dimensiunea adresei merge cu până la 4 octeți.
Deci vom imprima adresa și indicatorul.
Deci, pentru adresa și indicatorul plus 0 care va fi egal cu matricea Sub-Zero,
care este adresa 6 3 5 6 7 - 8 și la dereferență indicatorul va obține valoarea 15.
Deci, oamenii sunt încă 0 egali cu matricea Sub-Zero.
Și apoi, din nou, facem același lucru pentru oameni doar unul cu doi și plus trei.
Toate echivalente cu locurile corecte din matrice pentru index.
Adresele sunt în creștere cu 4 octeți, dar putem totuși să adăugăm doar 1 2 și 3 și vedem
că valorile sunt aceleași.
Și apoi ne spune că acest lucru ocupă mult timp 4 octeți și de aceea adresele cresc cu 4.
Ceea ce este semnificativ aici este că putem adăuga încă 1 la ea și compilatorul știe
să meargă la următoarea adresă, astfel încât dacă dacă avem un lung sau un caracter sau orice alt tip de date particular în interiorul sistemului.
Adăugarea unui sau a două va adăuga numărul corect de octeți.
Deci, doar un alt exemplu am vrut să vă arăt, deoarece această aritmetică pointer este
foarte importantă și este foarte util atunci când iterați sau traversați o matrice care o face mult mai curată și mult
mai eficientă.
Deci, sper că asta a ajutat.
Mulțumesc.