Hjem Personlig finansiering Bygning Konstant Arrays i C ++

Bygning Konstant Arrays i C ++

Video: Exploring JavaScript and the Web Audio API by Sam Green and Hugh Zabriskie 2024

Video: Exploring JavaScript and the Web Audio API by Sam Green and Hugh Zabriskie 2024
Anonim

Hvis du har en matrix, og du ikke vil have indholdet til at ændre, kan du gøre det til et konstant array. Følgende kodelinjer, der findes i Array05-eksemplet, viser denne fremgangsmåde:

const int Permanent [5] = {1, 2, 3, 4, 5}; cout << permanent [1] << endl;

Dette array fungerer som et andet array, bortset fra at du ikke kan ændre tallene inde i det. Hvis du tilføjer en linje som den følgende linje, får du en compilerfejl, fordi kompilatoren er opmærksom på konstanter:

Permanent [2] = 5;

Her er den fejl, du får, når du prøver dette i Kode:: Blokke:

Fejl: Tildeling af skrivebeskyttet placering 'Permanent [2]'

Hvad med et konstant udvalg af nonconstants? Kan du gøre det? Nå, nogle gange - afhængigt af kompilatoren. Så forfærdeligt som den følgende kode (fundet i Array06-eksemplet) ser ud - og det er ikke ANSI-standard! - Det er tilladt at gøre dette med ældre versioner af gcc-kompilatorerne. (Microsoft Visual C ++ og Borland C ++ Builder tillader det ikke, og Code:: Blocks compiler præsenterer dig med en fejl: Fejlmeddelelse om ugyldig array-tildeling.)

int NonConstant [5] = {1, 2, 3, 4, 5}; int OtherList [5] = {10, 11, 12, 13, 14}; OtherList = NonConstant;

Med andre ord siger den tredje linje: "Glem hvad OtherList peger på; i stedet gør det til det første array, {1, 2, 3, 4, 5}! "Nu skal du virkelig ikke skrive kode som denne (husk, hold tingene simple og forståelige), så hvis du vil forhindre denne slags ting, kan du gøre arrayet konstant:

< ! --3 ->
const int NonConstant [5] = {1, 2, 3, 4, 5}; const int OtherList [5] = {10, 11, 12, 13, 14}; OtherList = NonConstant;

Nu, når kompilatoren kommer til den tredje linje, giver den dig en fejl:

fejl: tildeling af skrivebeskyttet variabel 'OtherList'

Men du bemærker måske, at måden du lavede arrayet konstant var på samme måde som du lavede sine elementer konstant i den kode, der kom lige før dette eksempel. Ups! Hvad handler det om? Udviser der er nogle regler.

Følgende liste beskriver reglerne i detaljer for at lave arrayer konstant:

  • Hvis du vil lave en matrix konstant, kan du forudgå sin type med word const. Når du gør det, er arraynavnet konstant, og elementerne inde i arrayet er også konstant. Således kan du ikke have et konstant array med nonconstant elementer, og du kan heller ikke have et uafbrudt array med konstante elementer.

  • Begrebet nonconstant array findes kun i gcc og er ikke ANSI-standard.

Hvis du virkelig ønsker at blive teknisk, siger C ++ ANSI-standarden, at når du sætter ordet const foran en array-erklæring, laver du ikke arrayet konstant; du siger at arrayet kun indeholder konstanter.

Men når du bruger const på denne måde, gør de fleste kompilatorer også arrayet selv konstant. Men det er fint; folk bør ikke tage et array navn og kopiere det til noget andet. Det er ikke en god programmeringsstil, og det beder bare om fejl - eller i det mindste forvirring - senere.

Bygning Konstant Arrays i C ++

Valg af editor

Routingprotokollvalgskriterier - dummies

Routingprotokollvalgskriterier - dummies

Folk bruger to grundlæggende metoder til klassificering af ruteprotokoller - hvor de bruges og af hvordan de beregner routing. Du kan se, hvordan du vælger protokoller baseret på, hvor du planlægger at bruge dem, måden protokollen håndterer data på, og hvordan din router vælger hvilken protokol der skal bruges, når mere end en ...

Indstilling af Cisco Device Timeouts - dummies

Indstilling af Cisco Device Timeouts - dummies

Uden at indstille timeout-indstillinger for Cisco Device Privileged EXEC-tilstand, dine sessioner forbliver åbne på ubestemt tid. Dette er især farligt for konsolporten. Uden timeout parametre aktiveret, hvis administratoren ikke logger ud, har en indtrenger adgang og ingen problemer får forhøjede tilladelser. For at undgå denne potentielt farlige situation behøver du kun skrive a ...

Router Ethernet-interfacekonfiguration - dummies

Router Ethernet-interfacekonfiguration - dummies

Du starter processen med at konfigurere router Ethernet-grænseflader ved at foretage en fysisk forbindelse til din router. Når du har etableret forbindelsen, kan du fortsætte med den grundlæggende konfiguration af Ethernet-, Fast Ethernet- eller Gigabit Ethernet-forbindelser. Tilslutning til din router For at starte din konfiguration skal du oprette forbindelse til din router og komme ind i ...

Valg af editor

Med fokus på nogle hurtige løsninger til fotofile - dummier

Med fokus på nogle hurtige løsninger til fotofile - dummier

På trods af alle kameraproducenters forsøg på at gør fotografering idiotsikker, vi laver alle stadig mindre end perfekte billeder. Nogle gange er vi problemet - vi er for tætte eller for langt væk, eller kan ikke finde ud af, hvordan du bruger kameraets tåbebeskyttelsesfunktioner. Nogle gange er problemet, at virkeligheden nøjagtigt nægter at overholde vores forventninger: Himlen er ...

Lær at kende dine Manga Studio Layer Typer - Dummies

Lær at kende dine Manga Studio Layer Typer - Dummies

Manga Studio giver et udvalg af lag typer til brug i dit arbejde. Når du lærer at forstå og forstå, hvordan lag fungerer, vil du spekulere på, hvordan du nogensinde har arbejdet uden dem. Her er en introduktion til, hvad Manga Studio har til opbevaring for dig i sin lag lineup: Raster Layer: Dette er det grundlæggende ...

Få dit mobilwebsted tildelt på sociale bogmærker - dummies

Få dit mobilwebsted tildelt på sociale bogmærker - dummies

Populariteten af ​​websider med antallet af stemmer, de får. Resultatet er, at disse websteder er gode ressourcer til folk, der ønsker at holde øje med, hvad der er populært online. De fleste tilbyder speciel software, der gør det nemt for alle at stemme på et websted. Få dit websted opført ...

Valg af editor

Automatisk opdatering af din journal i Outlook 2000 - dummies

Automatisk opdatering af din journal i Outlook 2000 - dummies

Stardat 2001: På Star Trek, Virksomheden gør trofast daglige poster i kaptajnens log. Kaptajnen registrerer oplysninger om de planeter, besætningen har udforsket, udlændinge, de har kæmpet, og de bizarre fænomener, de har observeret ud i det dybe rum, hvor ingen er gået før! Nu er det din tur. Bare ...

Slet og gendan kontakter i Outlook - dummies

Slet og gendan kontakter i Outlook - dummies

Med Outlook, du behøver ikke at rive sider ud af en papir adressebog for at slippe af med en persons oplysninger; bare slet kontakten. Slettede kontakter går til mappen Slette emner i Outlook, indtil næste gang du tømmer mappen Slette elementer, så du kan hente dem derfra, hvis du laver ...