Cunoștințe, prelegere, indicatori și funcții în limba de programare cu

Rezumat: Întrebările legate de funcțiile de programare ale căror argumente pot fi indicatoare, precum și funcțiile care returnează valori prin pointeri sunt studiate în curs. În partea practică, sunt luate în considerare exemple cu implementarea completă a programului.

Partea teoretică

În lucrarea anterioară de laborator au fost luate în considerare exemple de funcții, ale căror argumente erau indicatoare. În această lucrare de laborator, vor fi discutate în detaliu întrebări referitoare la indicatori și funcții.

Anterior, sa observat că în C, argumentele sunt transmise funcțiilor prin valoare și nu există nici o modalitate directă de a schimba variabila funcției de apel, acționând în interiorul funcției chemate. Datorită argumentului-pointers, funcția poate accesa obiectele din funcția de apelare, inclusiv modificarea acestora [11.1]. Ca exemplu, luați în considerare funcția swap (). în sarcina căruia este schimbul de elemente pe locuri. Pentru a rezolva o astfel de problemă este necesar să trimiteți pointeri la variabile din programul apelant (de exemplu, de la funcția principală principală ()) la funcția, care trebuie schimbată. Codul pentru rezolvarea exemplului:

Rezultatul programului este prezentat în Fig. 11.1.

Cunoștințe, prelegere, indicatori și funcții în limba de programare cu


Fig. 11.1. Rezultatul swap-ului ()

Pointerii trecuți la această funcție pot fi indicatori la indicatori. Pointerii pot indica la începutul unei matrice și așa mai departe Pointerii pot fi utilizați pentru a proteja matricele asupra cărora sunt necesare unele calcule sau transformări.

O proprietate specială a pointerilor poate fi considerată abilitatea de a le folosi ca valori de întoarcere a funcțiilor. Deoarece funcțiile returnează o singură valoare. apoi mai multe valori de același tip pot fi plasate într-o matrice. și apoi folosiți pointerul la această matrice ca valoare de retur.

Forma generală a definiției funcției care returnează un pointer. următoarele:

Să luăm în considerare un exemplu în care adăugarea a două matrice unidimensionale este efectuată și rezultatul este returnat prin pointer.

Codul pentru rezolvarea exemplului:

Programul nu necesită explicații speciale.

Indicatorii se întorc ca orice alt tip de date. Pentru a readuce un pointer. funcția trebuie să declare tipul său ca tip de valoare de retur. Astfel, dacă funcția returnează un pointer. apoi valoarea. utilizat în declarația sa de returnare. ar trebui să fie, de asemenea, un indicator. În special, multe funcții de bibliotecă pentru prelucrarea șirurilor returnează indicii la simboluri.

În C, există un astfel de mecanism ca un indicator al unei funcții. Să presupunem că există mai multe funcții pentru diferite operații de date. În acest caz, este convenabil să definiți un pointer la o funcție. și folosiți-o acolo unde doriți să efectuați calcule pentru diferite funcții.

Definiția tipică a unui indicator al funcției este:

Indicatorii funcționali sunt deseori utilizați în sistemele controlate prin meniuri [11.2]. Utilizatorul selectează o comandă de meniu (una din mai multe). Fiecare echipă este deservită de funcția sa. Indicatorii pentru fiecare funcție sunt în seria de indicii. Alegerea utilizatorului funcționează ca un indice, prin care pointerul către funcția dorită este selectat din matrice.

O altă aplicație tipică a indicatorilor funcționali este implementarea algoritmilor generalizați, de exemplu algoritmi de sortare și căutare. În acest caz, criteriile de sortare și de căutare sunt implementate ca funcții separate și au trecut prin utilizarea indicatorilor funcționali ca parametru pentru implementarea algoritmului principal.







Trimiteți-le prietenilor: