Wat is een variabele?

Een variabele is een naam voor een plaats in het geheugen van de computer waar u gegevens opslaat.

Stelt u zich een heel groot magazijn voor met veel opbergruimtes, tafels, planken, speciale kamers enz. Dit zijn allemaal plaatsen waar u iets kunt opslaan. Laten we ons voorstellen dat we een krat bier in het magazijn hebben. Waar bevindt het zich precies??

We zouden niet zeggen dat het 31 '2 "van de westmuur en 27' 8" van de noordmuur is opgeslagen. In programmeertermen zouden we ook niet zeggen dat mijn totale salaris dat dit jaar is betaald, wordt opgeslagen in vier bytes, beginnend bij locatie 123.476.542.732 in RAM.

Gegevens op een pc

De computer plaatst variabelen op verschillende locaties telkens wanneer ons programma wordt uitgevoerd. Ons programma weet echter precies waar de gegevens zich bevinden. We doen dit door een variabele te maken om ernaar te verwijzen en vervolgens de compiler alle rommelige details te laten behandelen over waar deze zich feitelijk bevindt. Het is voor ons veel belangrijker om te weten welk type gegevens we op de locatie zullen opslaan.

In ons magazijn bevindt onze kist zich misschien in sectie 5 van plank 3 in de drankruimte. Op de pc weet het programma precies waar de variabelen zich bevinden.

Variabelen zijn tijdelijk

Ze bestaan ​​zolang ze nodig zijn en worden vervolgens verwijderd. Een andere analogie is dat variabelen op getallen lijken in een rekenmachine. Zodra u op de knoppen wissen of uitschakelen drukt, gaan de displaynummers verloren.

Hoe groot is een variabele

Zo groot als nodig is en niet meer. De kleinste die een variabele kan zijn, is één bit en de grootste is miljoenen bytes. Huidige processors verwerken gegevens in brokken van 4 of 8 bytes tegelijk (32 en 64 bit CPU's), dus hoe groter de variabele, hoe langer het duurt om deze te lezen of te schrijven. De grootte van de variabele is afhankelijk van het type.

Wat is een variabel type?

In moderne programmeertalen worden variabelen van een type verklaard.

Afgezien van getallen maakt de CPU geen enkel onderscheid tussen de gegevens in het geheugen. Het behandelt het als een verzameling bytes. Moderne CPU's (afgezien van die in mobiele telefoons) kunnen in hardware meestal zowel rekenkundige getallen als drijvende komma verwerken. De compiler moet verschillende machinecode-instructies voor elk type genereren, dus als u weet wat het type variabele is, helpt dit de optimale code te genereren.

Welke soorten gegevens kan een variabele bevatten?

De fundamentele typen zijn deze vier.

  • integers (zowel ondertekend als niet-ondertekend) 1,2,4 of 8 bytes groot. Meestal aangeduid als ints.
  • Drijvend punt Getallen tot 8 bytes groot.
  • bytes. Deze zijn georganiseerd in 4s of 8s (32 of 64 bits) en worden in en uit de registers van de CPU gelezen.
  • Tekst tekenreeksen, tot miljarden bytes groot. CPU's hebben speciale instructies voor het zoeken door grote blokken bytes in het geheugen. Dit is erg handig voor tekstbewerkingen.

Er is ook een algemeen variabeletype, vaak gebruikt in scripttalen.

  • Variant - Dit kan elk type bevatten, maar is langzamer te gebruiken.

Voorbeeld van gegevenstypen

  • Arrays van typen - enkele dimensie zoals laden in een kast, tweedimensionaal zoals sorteerdozen van het postkantoor of driedimensionaal als een stapel bierkratten. Er kan een willekeurig aantal dimensies zijn, tot de limieten van de compiler.
  • Tellingen die een beperkte subset van gehele getallen zijn. Lees over wat een opsomming is.
  • Structs zijn een samengestelde variabele waarbij verschillende variabelen in één grote variabele worden samengevoegd.
  • Streams bieden een manier om bestanden te beheren. Ze zijn een vorm van een string.
  • Objecten zijn als structs, maar met veel geavanceerdere gegevensverwerking.

Waar worden variabelen opgeslagen?

In het geheugen, maar op verschillende manieren, afhankelijk van hoe ze worden gebruikt.

  • Wereldwijd. Alle delen van het programma hebben toegang tot de waarde en kunnen deze wijzigen. Dit is hoe oudere talen zoals Basic en Fortran vroeger met gegevens omgingen en het wordt niet als een goede zaak beschouwd. Moderne talen ontmoedigen meestal wereldwijde opslag, hoewel dit nog steeds mogelijk is.
  • Op de hoop. Dit is de naam voor het gebruikte hoofdgebied. In C en C ++ is de toegang daartoe via pointervariabelen.
  • Op de stapel. De stapel is een geheugenblok dat wordt gebruikt om parameters op te slaan die in functies zijn doorgegeven en variabelen die lokaal voor functies bestaan.

Conclusie

Variabelen zijn essentieel voor procedureel programmeren, maar het is belangrijk om niet te veel op te gaan in de onderliggende implementatie, tenzij u systeemprogrammering uitvoert of toepassingen schrijft die in een kleine hoeveelheid RAM moeten worden uitgevoerd.

Onze regels met betrekking tot variabelen:

  1. Tenzij je strak op ram zit of grote arrays hebt, blijf dan bij int byte (8 bits) of korte int (16 bits). Vooral op 32-bits CPU's is er een extra vertragingsboete bij toegang tot minder dan 32 bits.
  2. Gebruik drijvers in plaats van dubbels, tenzij je de precisie nodig hebt.
  3. Vermijd varianten tenzij dit echt nodig is. Ze zijn langzamer.