C initialiserer ikke variabler automatisk , så hvis du ikke klargjør dem riktig , kan du få uventede resultater. Heldigvis gjør C det enkelt å starte variabler når du erklære dem . Instruksjoner
Initialiser variabler på Declaration
en
klargjøre en variabel i C for å tilordne den en start verdi. Uten dette, vil du få hva som skjedde til å være i minnet på det tidspunktet, noe som fører til inkonsekvent atferd og uforklarlige bugs som kan være svært vanskelig å spore opp .
2
Legg en initialisering til erklæringen . Bare legge på et oppdrag rett til slutten av erklæringen , slik:
int x = 5;
3 Vet at initialisering arrays fungerer på samme måte , bortsett fra at du må sette flere komma -separerte verdier inne krøllete parentes. Når du gjør dette , kan du la ut tabellens størrelse , og det vil bli fylt ut automatisk :
int month_lengths [ ] = { 31 , 28, 31 , 30, 31 , 30, 31 , 31, 30, 31 , 30 , 31 };
4 Dra nytte av tegnstrenger . Tegnstrenger , som er virkelig matriser av tegn , støtter også et enklere format for initialisering:
røye tittelen [ ] = " My Program" ;
5 Express enten slags matrise initialisering i pekeren format ( siden arrays er virkelig pekere) :
int * month_lengths = { 31 , 28, 31 , 30, 31 , 30, 31 , 31, 30, 31 , 30, 31 }; char * title = " My Program" ;
6 Husk at strukturer i C er initialisert på samme måte som arrays :
struct rolle = {" Hamlet ", 7 , FALSE , " Prince of Denmark ", " Kenneth Branagh "} ;
Initialiser variabler manuelt
7 Vent med å starte en variabel på et annet sted i programmet om dette vil bli klarere . For eksempel er en variabel som vil være indeksen for en for løkke vanligvis best initialisert i for loop . Dette gjør det enklere for en annen programmerer å lese , siden initialisering er i nærheten av der den skal brukes .
8
Initialiser datastruktur til rett tid . Hvis en datastruktur kommer til å bli dynamisk allokert med malloc () eller en lignende funksjon , kan du ikke starte det før etter at den er tildelt. Men i dette tilfellet , hva du erklære er faktisk en peker , som bør likevel bli initialisert til NULL som en selvfølge .