Video: How does PCM audio work? :: Case study and example C++ code 2024
In C ++ start een lokale variabele het leven niet met een geldige waarde, zelfs niet de waarde 0. Op een andere manier gezegd, een lokale variabele bevat afval totdat u daadwerkelijk iets opslaat in het. Lokaal gedeclareerde arrays zijn hetzelfde: elk element bevat garbage totdat u er daadwerkelijk iets aan toewijst.
U moet lokale variabelen initialiseren wanneer u ze declareert. Deze regel geldt nog meer voor arrays. Het is veel te gemakkelijk om toegang te krijgen tot niet-geïnitialiseerde array-elementen en denkt dat dit geldige waarden zijn.
"Lokale variabele" verwijst naar de normale variabelen die zijn gedeclareerd binnen een functie. C ++ puristen noemen deze automatische variabelen om ze te onderscheiden van statische variabelen.
Gelukkig kan een kleine array worden geïnitialiseerd op het moment dat deze wordt aangegeven met een initialisatie-lijst. Het volgende codefragment laat zien hoe dit wordt gedaan:
float floatArray [5] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};
Hiermee initialiseert u floatArray [0] tot 0, floatArray [1] tot 1. 0, floatArray [2] tot 2. 0, enzovoort.
C ++ pads de initialisatielijst met 0s als het aantal elementen in de lijst kleiner is dan de grootte van de array. In feite kan een lege initialisatie-lijst worden gebruikt om een array te initialiseren naar 0:
int nArray [128] = {}; // array initialiseren naar alle 0's
Het aantal initialisatieconstanten kan de grootte van de array bepalen. U zou bijvoorbeeld kunnen hebben vastgesteld dat floatArray vijf elementen heeft, gewoon door de waarden binnen de accolades te tellen. C ++ kan ook tellen (hier is tenminste één ding dat C ++ voor zichzelf kan doen).
float floatArray [] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};