Wskaźniki w c

Wskaźniki w c
Wskaźniki są najważniejszym tematem w języku programowania C. W alokacji pamięci każdy blok, w którym przechowywane są dowolne dane, jest w stanie przechowywać 1 bajt informacji. Wskaźnik jest zmienną, która umożliwia nam przechowywanie adresu zmiennych, na które chcemy wskazać. Wartość samych wskaźników można zmienić, aby wskazywać na różne miejsca w pamięci, co jest potężne, gdy wskazujemy tablicę, ponieważ wiemy, że elementy macierzy wewnętrznej są obok siebie. Możemy więc przenieść wskaźnik z jednego elementu do następnego elementu, po prostu poruszając się w pamięci.

Ilekroć zadeklarowana jest zmienna, lokalizacja pamięci jest domyślnie przydzielana do nich automatycznie, która jest używana do przechowywania przypisanej wartości. Lokalizacja przypisywana do zmiennej ma predefiniowany adres, do którego można uzyskać tylko za pomocą wskazówek.

Składnia
$ type *nazwa zmiennej;

Składnia deklaracji wskaźnika jest nieco inna niż deklarowanie zmiennej, ponieważ podczas korzystania z wskazówek mamy obie zdolności dostępu do adresu, a także wartości zmiennej. W deklaracji wskaźników używane jest słowo kluczowe „*”, które wskazuje, że wskazujemy na zmienną „XYZ”. W podanej składni typu jest typ danych zmiennej wskaźnika, którą zamierzamy zdefiniować, a „nazwa zmiennej” jest zmienną, którą należy wskazać.

Załóżmy, że utworzyliśmy zmienną „var”, której wartość znajduje się na adresie „3E97B57C”.

Int var = 2;
Int *ptr;
ptr =&var;

Teraz, definiując zmienną wskaźnika „PTR”, wskaźnik jest zdefiniowany za pomocą operatora gwiazdki „*”. Słowo techniczne użyte dla tego operatora to dereferencja. Aby wskazać adres zmiennej, do której musimy uzyskać dostęp, użyjemy słowa kluczowego „i” Ampersand.

Jak pokazano na poniższym rysunku, wskaźnik PTR zawiera adres zmiennej „var”.

Przykład 1:
W tym przykładzie implementujemy nasz wskaźnik, przez który wyświetlimy adres zmiennej, a także wartości zmiennej. Aby wdrożyć wskaźniki, najpierw dołączymy nasz plik nagłówka „Stdio.h ”i wiedz, że„ stdio.H ”to plik nagłówka, który pozwala nam wykonywać operacje wejściowe w C w C. Teraz, przechodząc do naszej funkcji Main (), używamy naszych wskazówek.

#włączać
Int main ()

int var = 10;
int *ptr;
ptr =&var;
printf („Adres zmiennej var to: %x \ n”, ptr);
printf („Wartość zmiennej var to: %x \ n”, *ptr);
powrót (0):

W funkcji Main () najpierw zadeklarujemy zmienną o nazwie „var” i przypisamy jej wartość „10”. Teraz „var” posiada wartość „10”. Następnie ogłosimy wskaźnik typu liczb całkowitych, nazywając go „ptr”. Aby przypisać adres zmiennej „var” do wskaźnika, użyjemy Ampersand „&”. Ampersand „&” nazywa się operatorem odniesienia, który służy do utworzenia wskaźnika lub adresu informacji przechowywanych w lokalizacji pamięci.

Teraz wskaźnik jest odpowiedzialny za trzymanie adresu zmiennej „var”. W oświadczeniu PrintF %D oznacza wartości dziesiętne, a %x reprezentuje, że chcemy, aby liczby wyszły z heksadecimal, co jest nieco łatwiejsze do odczytania. Drukujemy adres zmiennej „3E97B57C”. W drugiej instrukcji drukowania drukujemy wartość zmiennej „var” za pomocą wskaźnika „PTR”. Teraz, jak widzimy w pierwszym oświadczeniu, po prostu nazywamy „ptr” bez gwiazdki „*”, która umożliwia nam wydrukowanie adresu zmiennej.

Jak omówiliśmy we wstępie, wskaźniki zawierają adres informacji przechowywanych w pamięci. Z drugiej strony, kiedy wyświetlimy wartość zmiennej przechowywanej w naszej pamięci, wywołujemy wskaźnik za pomocą gwiazdka „*”.

Jak pokazano na poniższym zrzucie ekranu, możemy zobaczyć dane wyjściowe obu instrukcji drukowania. Pierwszy z nich drukuje adres, podczas gdy drugi drukuje wartość zmiennej.

Przykład 2:
W poniższym kodzie zmienimy wartość zmiennej za pomocą wskazówek. Jak wiemy, wskaźniki są najważniejszą częścią języka C. Korzystając z nich, możemy skrócić czas i złożoność kodu i pozwala nam obsługiwać nieograniczone dane.

#włączać
int main ()

int myvar = 23;
int *myptr;
MyPtr = &myvar;
printf („Adres myvar = %p \ n”, myptr);
printf („Wartość myvar = %d \ n”, *myptr);
*MyPtr = 10;
printf („zaktualizowana wartość myvar za pomocą wskaźnika to %d”, *MyPtr);

Po uwzględnieniu plików nagłówka przejdziemy do naszej głównej funkcji, w której zainicjujemy zmienną o nazwie „MyVar”, która jest odpowiedzialna za utrzymanie wartości „23”. A teraz inicjowanie wskaźnika liczby całkowitej, która jest „MyPtr”, wskazuje na adres zmiennej, który deklarujemy w górnej linii. Teraz, w naszym następnym kroku, przypisujemy adres zmiennej „myvar”, która jest przechowywana w pamięci o wartości „23”. Do tego używamy słowa kluczowego Ampersand „&”, jak omówiliśmy w poprzednim przykładzie, że Ampersand jest używany do utworzenia wskaźnika lub adresu do zmiennej przechowywanej w pamięci.

Po przypisaniu adresu do wskaźnika nazywamy instrukcję printf (), aby wydrukować wartość myvar, a także jej adres. Teraz, aby zaktualizować wartość pod określonym adresem zmiennej, używamy wskaźnika do aktualizacji jej wartości. W tym celu wywołamy adres wskaźnika za pomocą nazwy wskaźnika Asterisk „*”, który jest „MyPtr”. Następnie przypisz go wartość „10” w naszym przypadku. Następnie drukujemy wartość, przekazując zaktualizowany wskaźnik do instrukcji printf ().

Jak wyświetlono w poniższym fragmencie, adres zmiennej jest dostępny za pomocą wskaźnika, a wartość jest przechowywana pod tym adresem. W końcu wyświetlamy zaktualizowaną wartość tej zmiennej.

Wniosek

W tym przewodniku krótko omówiliśmy wskaźniki w języku C i metodach ich wdrożenia. Staraliśmy się jak najlepiej wyjaśnić wdrożenie wskaźników i sposób efektywnego używania ich w języku C, definiując je przy użyciu przykładów. Wskaźnik jest pomocny w zmniejszeniu wielkości kodu, a także służy do poprawy wydajności ogromnych programów. Możesz także użyć wskazówek do wykonywania różnych zadań, takich jak operacje arytmetyczne, aktualizacja danych itp.