C inte initiera variabler automatiskt , så om du inte initierar dem ordentligt , kan du få oväntade resultat . Lyckligtvis gör C det enkelt att initiera variabler när du deklarerar dem . Instruktioner
Initiera variabler vid förklaring
1
Initiera en variabel i C för att tilldela den ett startvärde . Utan detta kommer du få vad råkade vara i minnet i det ögonblicket , vilket leder till inkonsekvent beteende och reproducerbara buggar som kan vara mycket svårt att spåra .
2
Lägg en initiering till deklarationen . Bara tack på uppdrag ända till slutet av deklarationen , så här:
int x = 5;
3 Vet att initiera arrayer fungerar på samma sätt , förutom att man måste lägga flera kommaseparerade värden inom klammerparenteser . När du gör detta kan du lämna bort array storlek , och det kommer att fyllas i automatiskt :
int month_lengths [ ] = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 };
4 utnyttja teckensträngar . Teckensträngar som egentligen arrayer av tecken , även stödja ett enklare format för initiering :
char titel [ ] = " My Program " ,
5 Express antingen slags array initiering i pekaren format ( eftersom arrayer är egentligen pekare ) :
int * month_lengths = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } , char * title = " My Program " ;
6 Kom ihåg att strukturer i C initieras på samma sätt som arrayer :
struct roll = { " Hamlet " , 7 , FALSKT , " Prince of Denmark " , " Kenneth Branagh " };
initiera variabler manuellt
7 Vänta med att initiera en variabel på en annan plats i programmet , om det kommer att bli tydligare . Till exempel är en variabel som kommer att vara ett index för en for-loop oftast bäst initierats i for-loopen . Detta gör det lättare för en annan programmerare att läsa , eftersom initieringen är nära där det kommer att användas .
8
Initiera datastruktur vid rätt tidpunkt . Om en datastruktur kommer att vara dynamiskt allokerad med malloc ( ) eller en liknande funktion , kan du initiera inte det förrän efter att den tilldelats . Men i det här fallet , vad du förklara är egentligen en pekare , som fortfarande bör initieras till NULL som en självklarhet .