C geen variabelen automatisch initialiseren , dus als je ze niet juist initialiseren , kunt u onverwachte resultaten krijgen . Gelukkig C maakt het gemakkelijk om variabelen te initialiseren als je ze declareren . Instructies initialiseren Variabelen bij Verklaring 1 initialiseren van een variabele in C om het een beginwaarde toewijzen . Zonder dit , zal je krijgen wat toevallig in het geheugen op dat moment , wat leidt tot inconsistent gedrag en reproduceerbare bugs die bijzonder moeilijk op te sporen kan zijn . Kopen van 2 Voeg een initialisatie aan de verklaring . Gewoon tack op een opdracht tot het einde van de verklaring , zoals zo : int x = 5 ; 3 Weet dat het initialiseren arrays werkt op dezelfde manier , behalve dat u moet zetten meerdere komma's gescheiden waarden binnen accolades . Als u dit doet , kunt u ophouden grootte van de array , en het zal worden automatisch ingevuld : int month_lengths [ ] = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ; Goedkope 4 Profiteer van tekenreeksen . Tekenreeksen , die echt zijn arrays van karakters , ondersteunen ook een eenvoudiger indeling voor initialisatie : char title [ ] = " Mijn Programma " ; Express 5 ofwel soort van array- initialisatie in wijzer -formaat ( sinds arrays zijn echt pointers ) : int * month_lengths = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ; char * title = " Mijn Programma " ; 6 Vergeet niet dat structuren in C worden geïnitialiseerd op dezelfde manier als arrays : struct rol = { " Hamlet " , 7 , FALSE , " Prins van Denemarken " , " Kenneth Branagh " } ; < br > initialiseren Variabelen handmatig 7 Wacht een variabele initialiseren op een andere plaats in het programma als dit duidelijker zal zijn . Bijvoorbeeld , is een variabele die de index van een lus zal meestal het beste geïnitialiseerd in de lus . Dit maakt het voor een programmeur om te lezen , omdat de initialisatie buurt waar het zal worden gebruikt . 8 Initialiseer de gegevensstructuur op het juiste moment . Als een datastructuur gaat dynamisch worden toegewezen met malloc ( ) of een soortgelijke functie , kunt u niet initialiseren nadat het is toegewezen . Echter , in dit geval , wat je verklaren is eigenlijk een pointer , die nog moet worden geïnitialiseerd op NULL als een vanzelfsprekendheid .
|