Pointerii în limbaj de programare
Deci, vom introduce notația:
* Ptr - înseamnă "pointer endiancu PTR"
un pointer la o variabilă care stochează int-număr.
Pentru a începe pentru a defini ceea ce este un pointer.
int var1, var2, z; / * Variabile Integer * /
int * pointer; / * Pointer la o variabilă întreg * /
Vom reprezenta indicatorul ca o săgeată; o recepție bună și programare practică.
Astfel, INDEX - este „o săgeată ce indică spre o cutie-variabilă“. Start Această săgeată (la rândul său), stocate în orice variabilă. În acest caz, în cazul în care săgeata indică o variabilă de tip int, tipul variabilei care stochează începutul săgeții, există int * Dacă de char, atunci tipul - char *
legal x săgeata de pe caseta „x“ arr [3] pe caseta săgeată "arr [3]" ilegal - (2 + 2) nu este aici numit "box", pe care săgeată, în general, au o cutie.
Tip [modificator] * numele pointer;
nume pointer - indicator de tip identificator variabil;
* - definește o variabilă de tip pointer.
Modificatorul este opțională și poate lua valori (în apropiere. Far. Imens) este proiectat pentru a determina cantitatea de memorie rezervată pentru indicatorul.
Luați în considerare un alt exemplu de utilizare a indicii.
Iată legăturile schemei indicatoare:
Ca urmare, programul va fi afișat
d = 7776 pd = 65522 * pd = 7776 pd = 65520
c = Un PC = 65525 * PC = A PC = 65518
indicii de mai sus pot efectua operații aritmetice, dar operații și * au prioritate mai mare decât operatorii aritmetici. Să considerăm un exemplu. ilustrează această regulă:
A = 10 care, u - nu sa schimbat, z = 5.
Este recomandabil să se ia în considerare utilizarea de indicii și operațiunile pe ele pentru procesarea informațiilor reprezentate sub formă de matrice statice.
Să presupunem că avem un tablou întreg care urmează să fie inversată.
Problema este rezolvată cu utilizarea elementelor matrice de indexare, dar pentru a înțelege modul în care puteți utiliza o încercare de a rezolva aceasta folosind indicii în mai multe moduri.
In al doilea exemplu indicele increment d și h scăderea pointerul mutat la corpul buclei, și este de asemenea utilizat pentru ciclul condiție prealabilă. Acest lucru este posibil deoarece operatorii unari ++, -, * au aceeași performanță cu prioritate, spre deosebire de alte operații aritmetice.
În ultimul exemplu, există o imitație a variabilelor de index pointer offset. Aici, în locul unei [i] un pointer la începutul șirului mutat de către un număr predeterminat de elemente * (a + i).
În rezolvarea unor probleme este de asemenea posibil să se utilizeze o matrice statică de indicii.
Rezultatul programului:
6,000 5,000 4,000 3,000 2,000 1,000
1,000 2,000 3,000 4,000 5,000 6,000
Rezultatul programului.