En enkel kortvarig erklæring som inkluderer definisjonen kan erklæres i ethvert omfang i C ++ som følger:
char ch [] = 'a', 'b', 'c', 'd', 'e';Dette er en rekke tegn hvis navn er CH. Array Literal er et eksempel på en initializer_list.
Den samme matrisen kan deklareres og initialiseres som følger, i et funksjonsomfang eller et nestet lokalt omfang, men ikke i det globale omfanget:
char ch [5];Hvis dette kodesegmentet er skrevet i det globale omfanget, vil kompilatoren utstede fem feilmeldinger for de fem tildelingslinjene. Imidlertid kan matrisen deklareres uten initialisering i det globale omfanget og deretter tilordne verdier i funksjonsomfanget (eller andre omfang), som følgende program viser:
#inkludereDet globale omfanget har erklæringen “Char ch [5];”. Tildelingen av verdiene er gjort i C ++ Main () -funksjonen. C ++ hovedfunksjonen er fremdeles en funksjon.
Dette er reglene for hvordan du bruker en matrise i det globale omfanget, funksjonsomfanget og nestet lokalt omfang (eller et hvilket som helst annet omfang):
1. En matrise kan deklareres med initialisering av praktiske verdier i en uttalelse i ethvert omfang (global, funksjon, nestet lokalt omfang).
2. En rekke.
3. En rekke.
Disse reglene gjelder også for skalar (grunnleggende) typer. Resten av denne artikkelen begynner med å illustrere erklæringen og tildelingen av praktiske verdier av grunnleggende typer i det globale og de andre omfanget (funksjon og lokalt). Dette blir fulgt av illustrasjonen av erklæringen og tildelingen av praktiske verdier av matrisetypen i Global and the Other Scopes (Function and Local). Heltallet (int) brukes som eksempel for de grunnleggende typene. Ovennevnte tre regler er demonstrert for heltallet og matrisen.
Heltallstype erklæring med globale og andre omfang
I dette avsnittet demonstreres reglene med heltallstypen.
Første regel:
Et heltall kan erklæres med initialisering av en praktisk verdi i en uttalelse i ethvert omfang (global, funksjon, nestet lokalt omfang). Følgende program illustrerer dette med tre forskjellige heltallvariabler:
#inkludereUtgangen er:
1Det nestede lokale omfanget (blokken) er den som begynner med IF-kondisjonen.
Andre regel:
Et heltall kan deklareres uten initialisering av en praktisk verdi i det globale omfanget og har deretter tildelt en praktisk verdi i funksjonsomfang eller nestet lokalt omfang. Følgende program illustrerer dette med en heltallvariabel:
#inkludereUtgangen er:
0Når et heltall blir erklært uten tildeling, tar heltallet standardverdien på null. I dette tilfellet er null ikke en praktisk verdi.
Tredje regel:
Et heltall kan erklæres uten initialisering av en praktisk verdi i funksjonsomfang eller nestet lokalt omfang og har tildelt praktiske verdier i det samme lokale omfanget. Følgende program illustrerer dette med to forskjellige heltallvariabler:
#inkludereUtgangen er:
2Følgende program vil ikke kompilere, og kompilatoren vil utstede en feilmelding:
#inkludereProblemet er det globale omfangskodesegmentet:
int inter;Den andre uttalelsen er ikke tillatt i denne sammenhengen.
Array Type -erklæring med globale og andre omfang
Første regel:
En matrise kan deklareres med initialisering av praktiske verdier i en uttalelse i ethvert omfang (global, funksjon, nestet lokalt omfang). Følgende program illustrerer dette med tre forskjellige matriser:
#inkludereUtgangen skal være:
AbcdeDet nestede lokale omfanget (blokken) er den som begynner med IF-kondisjonen.
Andre regel:
En matrise kan deklareres uten initialisering av praktiske verdier i det globale omfanget og deretter ha tildelt praktiske verdier i funksjonsomfang eller nestet lokalt omfang (eller noe annet omfang). Følgende program illustrerer dette med en matrise:
#inkludereUtgangen skal være:
"" ""Når et tegn blir erklært uten tildeling, tar tegnet standardverdien på "(ingen karakter). I dette tilfellet er "ikke en praktisk verdi. Det er fem "for den globale saken.
Merk: Oppgaven kan bare gjøres på denne måten uten initializer_list.
Merk: Med matriser, når matrisen er deklarert uten initialisering av praktiske verdier i en funksjon eller nestet omfang, kan standardverdiene være vilkårlige. Standardverdiene er bare ", for den globale saken. Denne vilkårlige funksjonen gjelder også for heltallsarray.
Tredje regel:
En rekke. Følgende program illustrerer dette med to forskjellige matriser:
#inkludereUtgangen skal være:
FghijFølgende program vil ikke kompilere, og kompilatoren vil utstede noen feilmeldinger:
#inkludereProblemet er det globale omfangskodesegmentet:
Char CH1 [5];Oppdragsuttalelsene er ikke tillatt i denne sammenhengen.
Konklusjon
Dette er reglene for hvordan du bruker en matrise i det globale omfanget, funksjonsomfanget og nestet lokalt omfang (eller et hvilket som helst annet omfang):
1) En matrise kan deklareres med initialisering av praktiske verdier i en uttalelse, i ethvert omfang (global, funksjon, nestet lokalt omfang).
2) En matrise kan deklareres uten initialisering av praktiske verdier, i det globale omfanget, og har deretter tildelt praktiske verdier, i funksjonsomfang eller nestet lokalt omfang (eller noe annet omfang).
3) En rekke.