Introduktion til Pointers i C

På C eller andre programmeringssprog har vi et begreb med variabel. Disse variabler bruges til at indeholde værdier i det. Man kan bruge sådanne variabler under programmering. Der er dog få opgaver, der ikke kræver variabler, men kræver adressen på disse variabler. Adressen til variabler betyder hukommelsens placering, hvor disse variabler findes. I dette emne skal vi lære om Pegere i C. Vi kan definere markøren som en type variabel, der indeholder adressen på enhver anden variabel, der muligvis har en vis værdi

Brug af pointere i programmeringssprog og C

Lad os nu diskutere det, hvor C kræver, at vi faktisk kræver en peger. Der er mange opgaver som dynamisk hukommelsesallokering, som kræver pegere, mens du programmerer i C. Brug af pointere en sådan opgave kunne gøres let

Forskellige måder at få adgang til variabel adresse i C

Lad os prøve at vide, hvad er de forskellige måder, hvorpå vi kan udskrive adressen til en variabel i C.

Der er to måder, hvorpå vi rent faktisk kan udskrive adressen til en variabel. Disse to metoder er:

  1. Ved at bruge ampersand (&) -metoden
  2. Ved at bruge markøren

Lad os undersøge hver metode med et eksempel

1. Ved at bruge ampersand (&) -metoden

I denne metode vil vi bruge konceptet ampersand til at udskrive en variables adresse

Lad os se på dette med et eksempel

#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;
)

Nu kopierer du ovenstående kodenavn og kører det

Det viser følgende output:

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

Skønt man måske kan se den forskellige værdi, der tildeles tilfældigt, mens man kører eksemplet

Ovennævnte eksempel bruges ikke meget, men det er værd at vide. Lad os nu se på det andet koncept, som vi diskuterer i dette emne.

2. Ved hjælp af pointer

Dette er en moderne tilgang til adgang til en variables adresse. Inden du bruger markøren, fortæl os den generelle syntaks for at erklære en markør

  • Den generelle syntaks for at erklære en markør - En almindelig syntaks, som vi bruger til at erklære en variabel, er:

data_type *variable

Dette er en almindelig måde at erklære enhver markør i C, her repræsenterer data_type typen af ​​variablen, hvis adresse skal gemmes. * angiver, at den deklarerede variabel er en markør. en variabel bruges simpelthen til at få adgang til værdien

Et simpelt eksempel på dette er:

double *var_text

Efter at have drøftet begrebet generel syntaks om at erklære en markør , så lad os vide, hvordan vi kan bruge en markør i programmering

For at bruge en markør i C skal man grundlæggende følge følgende tre trin:

  • Definition af markørvariabel
  • Tildeling af adressen på den variabel, hvis adresse vi vil have i markørvariablen
  • Når vi først har en markørvariabel med adressen, kan vi igen hente værdien af ​​variablen fra den adresse, der er gemt i markøren. Dette kunne gøres ved at bruge * i C. * er simpelthen en af ​​de uærlige operatører

Lad os bruge de ovennævnte trin med et eksempel, så forklarer vi dette eksempel trin for trin

Eksempel

#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;
)

Nu kopierer du ovenstående kodenavn og kører det

Det viser følgende output:

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

Lad os nu prøve at forstå ovenstående eksempel

Linjen int varNumValue = 10; erklærer blot en variabel med værdien 10

Den anden linje, der er linje ved siden af: int * ipointervarNumValue; erklæres simpelthen for at gemme variablen adresse

Det næste kodestykker, som er: ipointervarNumValue = & varNumValue; bruges til at holde variablen adresse. Her bruger vi begrebet ampersand, som vi diskuterede tidligere i artiklen

Nu kan vi blot få værdien og bruge en markør i vores kodestykker

Lad os nu undersøge forskellige typer af en markør i C

Typer af pointer i C

Der er forskellige typer af en markør i C. De grundlæggende typer af markører, der generelt bruges, er:

  • NULL Pointer
  • Dinglende pointer
  • Generiske pointer
  • Wild Pointer

Lad os forklare hver

1. Null-pointer: En null-pointer er en type peger, der peger på intet. Det peger generelt på segmentets basisadresse. Hvis der ikke tildeles noget til markøren, har den en nullværdi

Det bruges generelt i headerfiler som stdio.h, alloc.h

2. Dangler-peger: Denne type markør kan oprettes ved at slette objektet uden at ændre markørværdien

3. Generisk pointer: Denne type pointer erklæres ved hjælp af en variabel af typen tomrum. Da det er af ugyldig datatype, kaldes det derfor en generisk markør. Denne type markør peger ikke på nogen data

4. Wild Pointer: En markør, der ikke er initialiseret, kaldes en wild pointer. Denne type markør initialiseres i løbet af køretid, når man skal bruge den. Denne type markør kaldes wild pointer

Konklusion

Pegere i C bruges til at pege på variablen adresse. Disse variabler bruges til den dynamiske allokering af hukommelse i C. Disse variabler deklareres med en stjerne for at vise, at variablen er en markør. Disse bruges i overskriftsfilen i programmering.

Anbefalede artikler

Dette er en guide til Pointers i C. Her diskuterer vi de forskellige typer og anvendelser af pointers i C med metoder og eksempler. Du kan også se på de følgende artikler for at lære mere -

  1. Hvad er et programmeringssprog?
  2. C vs C ++
  3. Mønstre i C-programmering
  4. Bedste C-kompilatorer
  5. Vejledning til tips i C ++
  6. Pegere i C # med eksempler

Kategori: