Tablica wskaźników C ++

Tablica wskaźników C ++
Tablica zawiera listę elementów według rozmiaru, który dostarczamy w momencie tworzenia tablicy. Podczas gdy w C ++ wskaźniki są zmiennymi, które mają adresy innych zmiennych. Wskaźniki te mają adres jednej zmiennej i mogą przechowywać adres komórek tablicy. Zarówno tablice, jak i wskaźniki są bardzo ściśle ze sobą powiązane, jak w C ++, nazwa Array jest uważana za wskaźnik, ponieważ składa się z adresu elementu. Stąd tablica zawiera elementy, a wskaźniki zawierają adres zmiennych. Tak więc tablica wskaźnika lub „tablica wskaźnika” przedstawia tablicę z adresem elementów obecnych w tablicy. Ten temat będzie zawierał zjawisko szeregu wskaźników w C++.

Składnia

W C ++, jeśli musimy zadeklarować szereg wskaźników, tworzymy tablicę zawierającą adres elementów obecnych w nim, który wskazuje na niektóre wartości adresu.

# Typ *nazwa_wodnika [array_size];

Zgodnie z składnią, jeśli chcesz utworzyć tablicę wskaźników, definiujemy typ wskaźnika tablicy. Następnie zadeklarowana jest nazwa tablicy wskaźnika. Jak widać z składni, że „*” jest używany z nazwą wskaźnika w C++. Po nazwie tablicy deklaruje się rozmiar tablicy, który pokazuje, ile elementów będzie obecnych w tablicy.

# Int *newp [5];

Działanie z tablicy wskaźników w C++

Wartość wskaźnika wskazuje na adres wartości obecnych wewnątrz tablicy. Jeśli chcesz uzyskać dostęp do wartości, możesz uzyskać dostęp do każdej wartości za pomocą ich adresu, ponieważ wskazuje to tylko na ten konkretny adres. Zastosowanie wskaźników sprawia, że ​​operacje funkcjonalności są bardziej wydajne, a także wpływa na poziom wydajności. Teraz zobaczymy, jak zadeklarować tablicę wskaźnika.

Jak użyliśmy przykładowej deklaracji tablicy wskaźników powyżej.

# Int *newp [5];

W tym powyższym wierszu zadeklarowaliśmy szereg wskaźników o 5 elementach. Ta tablica będzie zawierać adres wartości w niej. Adres to lokalizacja elementu, w którym tablica jest przechowywana w pamięci. Ten adres pamięci zawsze zmienia punkt do elementu, który jest przechowywany w tej lokalizacji.

Tworzenie szeregu wskaźników w C++

Istnieje kilka kroków, aby stworzyć szereg wskaźników w C++

Najpierw tworzymy tablicę mającą elementy. Załóżmy, że mamy 5 elementów.

# Int newarray [5] = 1,2,3,4,5;

Następnie tworzymy tablicę wskaźników, która przechowuje adres elementów tablicy.

# Int "newp [5];

Jeśli chcesz uzyskać adres elementów w tablicy, użyj operatora „&”, da nam to adres wartości w pamięci.

# Newp [1] = i newp [1];

Następnie adres elementów jest przechowywany w tablicy wskaźników za pomocą pętli.

Teraz możemy uzyskać dostęp do elementów w tablicy z wskaźnikami; Zapewni tę samą wartość. Teraz użyjemy tutaj podstawowych przykładów, które pomogą ci w koncepcji zrozumienia.

Przykład 1

W tym przykładzie po prostu wyświetliśmy wartości wewnątrz tablicy. Ale tym razem nie odbywa się tego poprzez wyświetlanie wartości przez numer wewnętrzny, ale używając wskazówek. Więc pierwszy krok w programie głównym, dynamicznie tworzymy szereg rozmiaru 5.

# Int*p = new int [5];

Następnie, jak opisaliśmy wcześniej w części tematu „Tworzenie szeregu wskaźników w C ++”, tablica jest inicjowana liczbami. Będziemy używać Loop do wprowadzenia wartości w odpowiednich indeksach. Odbywa się to poprzez wskazówki. „10” jest tutaj stałą, która służy do pomnożenia wartości z nadchodzącą; Jest to inteligentne podejście do przypisywania wartości.

# 2 [p]

Teraz wartość p wynosi 1, więc po pomnożeniu będzie 2, w punkcie.

Na przykład, gdy pętla iteruje po raz pierwszy, wartość „i” będzie „0”, więc gdy w nawiasie zostanie dodana z 1, stanie się 1, a po pomnożeniu ze stałą, wynik będzie równy samej stałej. Dla drugiego indeksu, w następnej iteracji, gdy wartość I wynosi „1”, po dodaniu z 1, będzie to 2, więc gdy zostanie pomnożony przez 10, stanie się 20. A potem w każdej iteracji, aż wartość, którą należy wprowadzić. W przypadku wyświetlania wartości przez wskaźniki zastosowaliśmy różne techniki; Z pewnością będą dla ciebie korzystne w zrozumieniu perspektywy. Pierwsza instrukcja dostarczająca wyjście zawiera:

# *P

Jak wiemy, że ten symbol „*” wyświetla adres, należy pamiętać o jednej rzeczy: Gdy używamy wskaźnika do wyświetlania wartości bez użycia indeksu, automatycznie przypisuje pierwszą wartość domyślnie, wynik wyniesie 10. Następny jest:

# *P + 1

Po prostu doda wartość domyślną z jednym, więc odpowiedź to 11. Przechodząc do następnej wartości,

# *(P + 1)

Tym razem porozmawiamy o indeksie, ale nie o adresie, ponieważ „*” nie jest z P. Tak więc oznacza „0”, ten 0 zostanie dodany z 1, a formuje *(1), więc w 1 pozycji jest 20, więc zostanie wyświetlony.

Podobnie będą wyświetlane inne wyniki. Ostatecznie wskaźnik jest zakończony, ponieważ wzięliśmy również wynik tej wartości zwiększonej.

Aby uzyskać wynikową wartość, przejdź do terminalu Linux i użyj kompilatora G ++, aby skompilować i wykonać kod.

$ g ++ -o macierzy tablicy.C
$./szyk

Przykład 2

Ten przykład dotyczy wyświetlania adresów za pomocą tablic i wskaźników, aby wyświetlić różnicę między nimi. W tym celu w programie głównym deklarujemy tablicę o typu danych zmiennoprzecinkowych. Zmienna wskaźnika zmiennoprzecinka jest zadeklarowana.

# *ptr;

Teraz za pomocą tego wskaźnika będziemy mogli wyświetlić adres. Ale najpierw wyświetlmy adres elementów za pomocą tablicy. Odbywa się to przez pętlę. Jest to łatwy i ogólny sposób wyświetlania treści tablicy za pośrednictwem numeru indeksu.

# Ptr = arr;

Korzystając z notacji wskaźnika, wyświetlimy adres przez wskaźniki. Ponownie do wyświetlania adresu przez wskaźnik służy do wyświetlania adresu.

Ponownie użyj kompilatora G ++, aby skompilować, a następnie wykonaj kod w terminalu Linux, aby wyświetlić wynikowe wartości.

Podczas wykonywania kodu zobaczysz, że odpowiedź dla obu metod jest taka sama; albo przez tablicę, albo przez wskaźniki, ten sam wynik otrzymuje.

Wniosek

W systemie operacyjnym Ubuntu Linux jest używana szeregu wskaźników w systemie operacyjnym Ubuntu Linux. Ten artykuł dotyczył szeregu wskazówek w C++. Opracowaliśmy składnię i kilka przykładów związanych z wskaźnikami. Te przykłady można zaimplementować na dowolnym kompilatorze zgodnie z wyborem użytkownika.