Vad är pekare i C?
Pekaren i C är en variabel som lagrar adressen till en annan variabel. En pekare kan också användas för att hänvisa till en annan pekfunktion. En pekare kan ökas / minskas, dvs för att peka på nästa / föregående minnesplats. Syftet med pekaren är att spara minnesutrymme och uppnå snabbare körningstid.
Hur man använder pekare i C
Om vi deklarerar en variabel v av typen int, kommer v faktiskt att lagra ett värde.
v är lika med noll nu.
Men varje variabel, förutom värde, har också sin adress (eller helt enkelt uttryckt där den finns i minnet). Adressen kan hämtas genom att placera ett ampersand (&) före variabelns namn.
Om du skriver ut adressen till en variabel på skärmen ser den ut som ett helt slumpmässigt tal (dessutom kan det skilja sig från kör till kör).
Låt oss prova detta i praktiken med pekaren i C exempel
Utgången för detta program är -480613588.
Vad är en pekare nu? I stället för att lagra ett värde lagrar en pekare en variabeladress.
Pekervariabel
Int * y = & v;
VARIABEL
|
PEKARE
|
Ett värde som lagras i en namngiven lagrings- / minnesadress
|
En variabel som pekar på lagrings- / minnesadressen för en annan variabel
|
Förklara en pekare
Liksom variabler, pekare i C progra mming måste deklareras innan de kan användas i ditt program. Pekare kan kallas vad du vill så länge de följer C: s namnregler. En pekardeklaration har följande form.
data_type * pointer_variable_name;
Här,
- data_type är pekarens bastyp av C’s variabeltyper och anger typen av variabel som pekaren pekar på.
- Asterisken (*: samma asterisk som används för multiplikation) som är indirection operator, förklarar en pekare.
Låt oss se några giltiga pekardeklarationer i denna C-pekarehandledning:
Initiera en pekare
Efter att ha förklarat en pekare initialiserar vi den som standardvariabler med en variabeladress. Om pekare i C-programmering inte är oinitialiserade och används i programmet är resultaten oförutsägbara och potentiellt katastrofala.
För att få adressen till en variabel använder vi operatören ampersand (&), placerad framför namnet på en variabel vars adress vi behöver. Pekarinitiering görs med följande syntax.
Pointer Syntax
pointer = &variable;
Ett enkelt program för pekareillustration ges nedan:
Output:
Address stored in a variable p is:60ff08Value stored in a variable p is:10
Operatör |
Betydelse |
* |
Serverar två ändamål
- Deklaration av en pekare
- Returnerar värdet för den refererade variabeln
|
& |
Fungerar endast 1 syfte
- Returnerar adressen till en variabel
|
Typer av pekare i C
Följande är de olika typerna av pekare i C:
Nullpekare
Vi kan skapa en nollpekare genom att tilldela nollvärde under pekardeklarationen. Denna metod är användbar när du inte har någon adress tilldelad pekaren. En nollpekare innehåller alltid värdet 0.
Följande program illustrerar användningen av en nollpekare:
#include <stdio.h>int main(){int *p = NULL; //null pointerprintf("The value inside variable p is:\n%x”,p);return 0;}
Output:
The value inside variable p is:0
Ojämn pekare
I C-programmering kallas också en tom pekare som en generisk pekare. Den har ingen standarddatatyp. En ogiltig pekare skapas med hjälp av nyckelordet tom. Den kan användas för att lagra en adress för vilken variabel som helst.
Följande program illustrerar användningen av en ogiltig pekare:
#include <stdio.h>int main(){void *p = NULL; //void pointerprintf("The size of pointer is:%d\n",sizeof(p));return 0;}
Output:
The size of pointer is:4
Vild pekare
En pekare sägs vara en vild pekare om den inte initialiseras till någonting. Dessa typer av C-pekare är inte effektiva eftersom de kan peka på någon okänd minnesplats som kan orsaka problem i vårt program och det kan leda till att programmet kraschar. Man bör alltid vara försiktig när man arbetar med vilda pekare.
Följande program illustrerar användningen av vildpekare:
#include <stdio.h>int main(){int *p; //wild pointerprintf("\n%d",*p);return
read more