Úvod do ukazovateľov v C
V C alebo iných programovacích jazykoch máme koncept premennej. Tieto premenné sa používajú na uchovávanie hodnôt. Tieto premenné môžete použiť pri programovaní. Existuje však niekoľko úloh, ktoré nevyžadujú premenné, ale vyžadujú adresu týchto premenných. Adresa premenných znamená skutočné miesto v pamäti, kde tieto premenné existujú. V tejto téme sa dozvieme o ukazovateľoch v časti C. Ukazovateľ môžeme definovať ako typ premennej, ktorá drží adresu akejkoľvek inej premennej, ktorá môže mať nejakú hodnotu.
Použitie ukazovateľov v programovacích jazykoch a C
Teraz diskutujme o tom, v ktorom bode C skutočne potrebujeme ukazovateľ. Existuje veľa úloh, ako je dynamické prideľovanie pamäte, ktoré si počas programovania v C. vyžaduje ukazovatele. Pomocou ukazovateľov by sa takáto úloha dala ľahko vykonať
Rôzne spôsoby prístupu k variabilnej adrese v C
Skúsme zistiť, aké sú rôzne spôsoby, ako môžeme vytlačiť adresu premennej v C.
Existujú dva spôsoby, ako môžeme skutočne vytlačiť adresu premennej. Tieto dve metódy sú:
- Použitím metódy ampersand (&)
- Pomocou ukazovateľa
Pozrime sa na každú metódu s príkladom
1. Použitím metódy ampersand (&)
V tejto metóde použijeme koncepciu ampersand na vytlačenie adresy premennej
Pozrime sa na tento príklad
#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 skopírujte vyššie uvedený útržok kódu a spustite ho
Zobrazí sa nasledujúci výstup:
The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e
Pri spustení príkladu by sa však mohla zobraziť odlišná hodnota, ktorá je náhodne priradená
Vyššie uvedený príklad sa príliš nepoužíva, ale stojí za to poznať ho. Teraz sa pozrime na ďalší koncept, o ktorom diskutujeme v tejto téme.
2. Pomocou ukazovateľa
Toto je moderný prístup na prístup k adrese premennej. Pred použitím ukazovateľa dajte nám vedieť všeobecnú syntax deklarovania ukazovateľa
- Všeobecná syntax deklarovania ukazovateľa - Bežná syntax, ktorú používame na deklarovanie premennej, je:
data_type *variable
Toto je bežný spôsob, ako deklarovať akýkoľvek ukazovateľ v C, tu údaj_typ predstavuje typ premennej, ktorej adresu treba uložiť. * označuje, že deklarovaná premenná je ukazovateľ. premenná sa jednoducho používa na prístup k hodnote
Jednoduchým príkladom je:
double *var_text
Po diskusii o koncepte všeobecnej syntaxe deklarovania ukazovateľa nám dajte vedieť, ako môžeme použiť programátor pri programovaní
Ak chcete použiť ukazovateľ v jazyku C, musíte v zásade postupovať podľa nasledujúcich troch krokov:
- Definovanie ukazovateľovej premennej
- Priradenie adresy premennej, ktorej adresu chceme držať v premennej ukazovateľa
- Keď už máme premennú ukazovateľa s adresou, môžeme znova získať hodnotu premennej z adresy uloženej v ukazovateli. Dalo by sa to urobiť pomocou * v C. * je jednoducho jedným z unárnych operátorov
Použime vyššie uvedené kroky s príkladom a potom tento príklad postupne vysvetlíme
príklad
#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 skopírujte vyššie uvedený útržok kódu a spustite ho
Zobrazí sa nasledujúci výstup:
Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10
Skúsme pochopiť vyššie uvedený príklad
Riadok int varNumValue = 10; jednoducho deklaruje premennú s hodnotou 10
Druhý riadok, ktorý je vedľa neho: int * ipointervarNumValue; je jednoducho deklarovaná ako uloženie adresy premennej
Ďalší útržok kódu, ktorý je: ipointervarNumValue = & varNumValue; sa používa na držanie adresy premennej. Tu používame pojem ampersand, o ktorom sme diskutovali vyššie v tomto článku
Teraz môžeme jednoducho získať hodnotu a použiť ukazovateľ v našom zlomku kódu
Pozrime sa teraz na rôzne typy ukazovateľov v C
Typy ukazovateľov v C
V C. Existujú rôzne typy ukazovateľov. Základné typy ukazovateľov, ktoré sa bežne používajú, sú:
- NULL Ukazovateľ
- Visiaci ukazovateľ
- Všeobecné ukazovatele
- Wild Pointer
Vysvetlite každé z nich
1. Nulový ukazovateľ: Nulový ukazovateľ je typ ukazovateľa, ktorý neukazuje na nič. Vo všeobecnosti ukazuje na základnú adresu segmentu. V prípade, že k ukazovateľovi nie je nič priradené, má nulovú hodnotu
Zvyčajne sa používa v hlavičkových súboroch ako stdio.h, alloc.h
2. Dangler Ukazovateľ: Tento typ ukazovateľa sa dá vytvoriť odstránením objektu bez zmeny hodnoty ukazovateľa
3. Generic Ukazovateľ: Tento typ ukazovateľa sa deklaruje pomocou premennej typu void. Keďže ide o neplatný typ údajov, označuje sa ako všeobecný ukazovateľ. Tento typ ukazovateľa neukazuje na žiadne údaje
4. Divoký ukazovateľ: Ukazovateľ, ktorý nebol inicializovaný, sa nazýva divoký ukazovateľ. Tento typ ukazovateľa sa inicializuje počas doby vykonávania, keď ho človek potrebuje použiť. Tento typ ukazovateľa sa nazýva divoký ukazovateľ
záver
Ukazovatele v C sa používajú na ukazovanie na adresu premennej. Tieto premenné sa používajú na dynamické prideľovanie pamäte v C. Tieto premenné sa deklarujú hviezdičkou tak, aby ukazovali, že premenná je ukazovateľ. Používajú sa v hlavičkovom súbore pri programovaní.
Odporúčané články
Toto je sprievodca ukazovateľmi v časti C. Tu diskutujeme rôzne typy a použitia ukazovateľov v jazyku C s metódami a príkladmi. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Čo je programovací jazyk?
- C vs C ++
- Vzory v programovaní C
- Najlepšie kompilátory C.
- Sprievodca ukazovateľmi v jazyku C ++
- Ukazovatele v C # s príkladmi