Video: f2c 2024
En variabel i C ++ ska tilldelas en lagringstyp beroende på var och hur det definieras. Variabler definierade inom en funktion som nLocalVariable existerar inte förrän kontrollen passerar genom deklarationen. Dessutom definieras nLocalVariable bara inom fn () - variabeln upphör att existera när kontrollen lämnar fn () -funktionen.
int nGlobalVariable; void fn () {int nLocalVariable; statisk int nStaticVariable = 1; nStaticVariable = 2;}
I jämförelse skapas variabeln nGlobalVariable när programmet börjar exekvera och finns så länge som programmet körs. Alla funktioner har tillgång till nGlobalVariable hela tiden.
nLocalVariable har lokala räckvidd, och nGlobalVariable har globalt räckvidd . Statsordets statiska kan användas för att skapa en slags misshandel - något mellan en global och en lokal variabel. Den statiska variabeln nStaticVariable skapas när utförandet når förklaringen första gången som funktionen fn () kallas.
Till skillnad från nLocalVariable förstörs inte nStaticVariable när programexekvering återgår från funktionen. Istället behåller det sitt värde från ett samtal till nästa.
I detta exempel initialiseras nStaticVariable till 1 första gången som fn () kallas. Funktionen ändrar sitt värde till 2. nStaticVariable behåller värdet 2 vid varje efterföljande samtal - det återupptas inte när det har skapats. Initialiseringsdelen av deklarationen ignoreras varje efterföljande tid som fn () kallas efter första gången.
Omfattningen av nStaticVariable är dock fortfarande lokal för funktionen. Koden utanför fn () har inte tillgång till nStaticVariable.
Globala variabler är användbara för att hålla värden som du vill ha alla funktioner att få tillgång till. Statiska variabler är mest användbara för räknare - till exempel om du vill veta hur många gånger en funktion kallas. De flesta variablerna är dock av slätten av den lokala sorten.