C++ Variabelentypen Uitgelegd: Geheugen, Limieten en Operaties
Een variabele biedt ons benoemde opslag die onze programma's kunnen manipuleren. Elke variabele in C++ heeft een specifiek type, wat de grootte en indeling van het geheugen van de variabele bepaalt; het bereik van waarden dat in dat geheugen kan worden opgeslagen; en de set operaties die op de variabele kunnen worden toegepast.
De naam van een variabele kan samengesteld zijn uit letters, cijfers en het underscore-teken. Het moet beginnen met een letter of een underscore. Hoofd- en kleine letters zijn verschillend omdat C++ hoofdlettergevoelig is −
Er zijn de volgende basistypen variabelen in C++ zoals uitgelegd in het vorige hoofdstuk −
| Nr. | Type & Beschrijving |
|---|---|
| 1 | bool Slaat ofwel true of false op. |
| 2 | char Meestal een enkele octet (één byte). Dit is een integer-type. |
| 3 | int De meest natuurlijke grootte van een integer voor de machine. |
| 4 | float Een single-precision floating-point waarde. |
| 5 | double Een double-precision floating-point waarde. |
| 6 | void Vertegenwoordigt het ontbreken van een type. |
| 7 | wchar_t Een wide character type. |
C++ stelt u ook in staat om diverse andere typen variabelen te definiëren, die we in volgende zullen behandelen zoals Enumeratie, Pointer, Array, Referentie, Datastructuren, en Classes.
De volgende sectie behandelt hoe u diverse typen variabelen definieert, declareert en gebruikt.
Variabeledefinitie in C++
Een variabeledefinitie vertelt de compiler waar en hoeveel opslagruimte voor de variabele te creëren. Een variabeledefinitie specificheert een datatype, en bevat een lijst van een of meer variabelen van dat type als volgt −
type variabele_lijst;
Hier moet type een geldig C++ datatype zijn inclusief char, w_char, int, float, double, bool of elk door de gebruiker gedefinieerd object, etc., en variabele_lijst kan bestaan uit een of meer identificatornamen gescheiden door komma's. Enkele geldige declaraties worden hier getoond −
int i, j, k; char c, ch; float f, salary; double d;
De regel int i, j, k; declareert en definieert de variabelen i, j en k; wat de compiler instrukteert om variabelen genaamd i, j en k van type int te creëren.
Variabelen kunnen geïnitialiseerd worden (een initiële waarde toegewezen krijgen) in hun declaratie. De initialisator bestaat uit een gelijkteken gevolgd door een constante expressie als volgt −
type variabele_naam = waarde;
Enkele voorbeelden zijn −
extern int d = 3, f = 5; // declaratie van d en f. int d = 3, f = 5; // definitie en initialisatie van d en f. byte z = 22; // definitie en initialiseert z. char x = 'x'; // de variabele x heeft de waarde 'x'.
Voor definitie zonder initialisator: variabelen met statische opslagduur worden impliciet geïnitialiseerd met NULL (alle bytes hebben de waarde 0); de initiële waarde van alle andere variabelen is ongedefinieerd.
Variabeledeclaratie in C++
Een variabeledeclaratie geeft de compiler de verzekering dat er één variabele bestaat met het gegeven type en naam, zodat de compiler verder kan compileren zonder volledige details over de variabele nodig te hebben. Een variabeledeclaratie heeft zijn betekenis op het moment van compilatie alleen; de compiler heeft de echte variabeledefinitie nodig op het moment van linken van het programma.
Een variabeledeclaratie is nuttig wanneer u meerdere bestanden gebruikt en uw variabele in een van de bestanden definieert die beschikbaar zal zijn op het moment van linken van het programma. U gebruikt het extern trefwoord om een variabele op elke plek te declareren. Hoewel u een variabele meerdere keren in uw C++-programma kunt declareren, kan het maar één keer in een bestand, een functie of een blok code gedefinieerd worden.
Voorbeeld
Probeer het volgende voorbeeld waar een variabele bovenaan is gedeclareerd, maar binnen de main-functie gedefinieerd −
Live Demo#include <iostream>
using namespace std;
// Variabele declaratie:
extern int a, b;
extern int c;
extern float f;
int main () {
// Variabele definitie:
int a, b;
int c;
float f;
// daadwerkelijke initialisatie
a = 10;
b = 20;
c = a + b;
cout << c << endl;
f = 70.0/3.0;
cout << f << endl;
return 0;
}
Wanneer de bovenstaande code gecompileerd en uitgevoerd wordt, produceert het het volgende resultaat −
30 23.3333
Hetzelfde concept geldt voor functiedeclaratie waar u een functienaam geeft op het moment van declaratie en de daadwerkelijke definitie ergens anders gegeven kan worden. Bijvoorbeeld −
// functie declaratie
int func();
int main() {
// functie aanroep
int i = func();
}
// functie definitie
int func() {
return 0;
}
Lvalues en Rvalues
Er zijn twee soorten expressies in C++ −
lvalue − Expressies die verwijzen naar een geheugenlocatie heten “lvalue” expressie. Een lvalue mag aan beide kanten van een toewijzing verschijnen.
rvalue − De term rvalue verwijst naar een datawaarde die op een adres in het geheugen opgeslagen is. Een rvalue is een expressie waaraan geen waarde toegewezen kan worden, wat betekent dat een rvalue alleen aan de rechterkant van een toewijzing mag verschijnen.
Variabelen zijn lvalues en mogen dus aan de linkerkant van een toewijzing verschijnen. Numerieke literalen zijn rvalues en mogen dus niet toegewezen worden en mogen niet aan de linkerkant verschijnen. Het volgende is een geldig statement −
int g = 20;
Maar het volgende is geen geldig statement en zou een compileerfout genereren −
10 = 20;
C Taal
- C++ operators: complete gids met praktische voorbeelden
- C++ Variabelen en Datatypes: Expert‑handleiding voor int, double, char, string, bool
- C++ Operators Uitgelegd: Typen, Voorbeelden en Voorbeeldprogramma's
- C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
- C++ Char Datatype: Declaratie, ASCII en Conversie‑Technieken
- Pointers in C: Een Uitgebreide Gids naar Typen, Gebruik en Best Practices
- Variabelen in C: Types, naamgevingsregels en geheugenbeheer
- C++ Variabelentypen Uitgelegd: Geheugen, Limieten en Operaties
- Variabelenscope in C++ Begrijpen: Lokale vs Globale Variabelen
- Java primitieve datatypes: complete gids met voorbeelden
- Java Variabele Typen: Uitgebreide Gids