Wprowadzenie do wskaźników w C

W C lub innych językach programowania mamy pojęcie zmiennej. Te zmienne są używane do przechowywania w nim wartości. Można używać takich zmiennych podczas programowania. Istnieje jednak kilka zadań, które nie wymagają zmiennych, ale wymagają adresu tych zmiennych. Adres zmiennych oznacza rzeczywistą lokalizację pamięci, w której te zmienne istnieją. W tym temacie poznamy Wskaźniki w C. Możemy zdefiniować wskaźnik jako typ zmiennej, która przechowuje adres każdej innej zmiennej, która może mieć pewną wartość

Zastosowania wskaźników w językach programowania i C

Porozmawiajmy teraz o tym, w którym C faktycznie potrzebujemy wskaźnika. Istnieje wiele zadań, takich jak dynamiczna alokacja pamięci, która wymaga wskaźników podczas programowania w C. Za pomocą wskaźników takie zadanie można łatwo wykonać

Różne sposoby dostępu do adresu zmiennego w C

Spróbujmy dowiedzieć się, jakie są różne sposoby drukowania adresu zmiennej w C.

Są dwa sposoby, dzięki którym możemy wydrukować adres zmiennej. Te dwie metody to:

  1. Za pomocą metody ampersand (&)
  2. Za pomocą wskaźnika

Przyjrzyjmy się każdej metodzie z przykładem

1. Za pomocą metody ampersand (&)

W tej metodzie będziemy używać pojęcia ampersand do drukowania adresu zmiennej

Spójrzmy na to z przykładem

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Teraz skopiuj powyższy fragment kodu i uruchom go

Wyświetli następujące dane wyjściowe:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Chociaż można zobaczyć inną wartość, która jest przypisywana losowo podczas uruchamiania przykładu

Powyższy przykład nie jest często używany, ale warto o tym wiedzieć. Teraz spójrzmy na inną koncepcję, którą omawiamy w tym temacie.

2. Używając wskaźnika

Jest to nowoczesne podejście do dostępu do adresu zmiennej. Przed użyciem wskaźnika daj nam znać ogólną składnię deklarowania wskaźnika

  • Ogólna składnia deklarowania wskaźnika - Typowa składnia, której używamy do deklarowania zmiennej to:

data_type *variable

Jest to powszechny sposób deklarowania dowolnego wskaźnika w C, tutaj typ_danych reprezentuje typ zmiennej, której adres musi być przechowywany. * oznacza, że ​​zadeklarowana zmienna jest wskaźnikiem. zmienna służy po prostu do uzyskania dostępu do wartości

Prostym przykładem tego jest:

double *var_text

Po omówieniu koncepcji ogólnej składni zadeklarowania wskaźnika , daj nam znać, jak możemy używać wskaźnika w programowaniu

Aby użyć wskaźnika w C, w zasadzie należy wykonać następujące trzy kroki:

  • Definiowanie zmiennej wskaźnikowej
  • Przypisywanie adresu zmiennej, której adres chcemy przechowywać w zmiennej wskaźnikowej
  • Teraz, gdy mamy zmienną wskaźnikową z adresem, możemy ponownie pobrać wartość zmiennej z adresu zapisanego we wskaźniku. Można to zrobić za pomocą * w C. * jest po prostu jednym z jednoargumentowych operatorów

Użyjmy wyżej wymienionych kroków z przykładem, a następnie wyjaśnimy ten przykład krok po kroku

Przykład

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Teraz skopiuj powyższy fragment kodu i uruchom go

Wyświetli następujące dane wyjściowe:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

Spróbujmy teraz zrozumieć powyższy przykład

Linia int varNumValue = 10; po prostu deklaruje zmienną o wartości 10

Druga linia, która jest obok niej: int * ipointervarNumValue; jest po prostu zadeklarowany do przechowywania adresu zmiennej

Następny fragment kodu, który jest: ipointervarNumValue = & varNumValue; służy do przechowywania adresu zmiennej. Używamy tutaj koncepcji ampersand, którą omówiliśmy wcześniej w tym artykule

Teraz możemy po prostu uzyskać wartość i użyć wskaźnika w naszym fragmencie kodu

Teraz przyjrzyjmy się różnym typom wskaźnika w C.

Typy wskaźników w C

Istnieją różne rodzaje wskaźników w C. Podstawowe typy wskaźników, które są ogólnie używane, to:

  • Wskaźnik NULL
  • Zwisający wskaźnik
  • Ogólne wskaźniki
  • Wild Pointer

Wytłumaczmy każdy z nich

1. Wskaźnik zerowy : Wskaźnik zerowy jest rodzajem wskaźnika, który nie wskazuje na nic. Ogólnie wskazuje na adres bazowy segmentu. W przypadku, gdy wskaźnik nie jest przypisany, ma on wartość zerową

Jest zwykle używany w plikach nagłówkowych takich jak stdio.h, replace.h

2. Wskaźnik Danglera: Ten typ wskaźnika można utworzyć, usuwając obiekt bez modyfikowania wartości wskaźnika

3. Wskaźnik ogólny: Ten typ wskaźnika deklarowany jest za pomocą zmiennej typu void. Ponieważ ma on nieważny typ danych, dlatego jest określany jako ogólny wskaźnik. Ten typ wskaźnika nie wskazuje żadnych danych

4. Dziki wskaźnik: Wskaźnik, który nie został zainicjowany, nazywany jest dzikim wskaźnikiem. Ten typ wskaźnika jest inicjowany w czasie wykonywania, gdy trzeba go użyć. Ten typ wskaźnika jest znany jako dziki wskaźnik

Wniosek

Wskaźniki w C służą do wskazywania adresu zmiennej. Te zmienne są używane do dynamicznego przydzielania pamięci w C. Te zmienne są deklarowane gwiazdką, aby pokazać, że zmienna jest wskaźnikiem. Są one używane w pliku nagłówkowym podczas programowania.

Polecane artykuły

Jest to przewodnik po wskaźnikach w C. Tutaj omawiamy różne typy i zastosowania wskaźników w C wraz z metodami i przykładami. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Co to jest język programowania?
  2. C vs C ++
  3. Wzory w programowaniu C.
  4. Najlepsze kompilatory C.
  5. Przewodnik po wskaźnikach w C ++
  6. Wskaźniki w języku C # z przykładami