C gør udstrakt brug af hukommelse pejlemærker for håndtering arrays , funktion opkald , datastrukturer og meget mere. Vide, hvordan at arbejde direkte med pointere er nøglen til effektiv C- kodning. Instruktioner
Opret Memory pilvariablerne
1
Forstå at hukommelsen pilvariablerne altid pege på data af en bestemt type . For eksempel er en pointer til en int forskellig fra en pointer til en char . Dog vil C ikke stoppe dig fra frit at blande dem op . Gør det kun hvis du er sikker på du ved hvad du laver .
2
Opret en hukommelse pointer variabel ved at bruge den syntaks du ville bruge til at oprette en variabel af den ønskede type , men med en stjerne (* ) foran variabelnavnet , som dette:
int * x ;
3 Overvej NULL . Pointers kan altid være NULL (0), og det typisk bruges til at henvise til en pointer , der endnu ikke er blevet indstillet til at pege nogen steder.
Reference-og Dereference
4
Få at vide Referencing . Referencering
refererer til processen med at finde markøren til en eksisterende variabel . I C er referenceprocessen operatør -tegnet ( &). For eksempel : int color = 5; int * pointer_to_color , pointer_to_color = &color;
5 Udnyt dereferere . dereferere
er processen efter en pegepind til sin værdi , det modsatte af henvisninger . I C stjerne (* ) anvendes til dereferere , som følger: printf (" Color er% d \\ n" , * pointer_to_color ) /* prints 5 * /
bruge Memory Pointer variable < br >
6 passet i en pointer til variabel, når du har brug for en funktion til at være i stand til at ændre en variabel , i stedet for at passere den variable værdi. Dette lader funktionen bruger dereferere at ændre værdien :
void convert_color_to_RGB ( int farve , int * red , int * green , int * blue ) { * rød = redpart (farve ) * Grøn = greenpart (farve ) * blå = bluepart (farve) ;} convert_color_to_RGB (15, & myred , & mygreen , & MyBlue )
7 Arbejde omkring Cs grænser. Når du ønsker at passere en array eller struktur i en funktion , skal du bestå en pegepind i stedet , da C kun tillader enlige datatyper , der skal videregives til funktioner :
int subtotaler ( int * scoringer, int howmany ) { int total = 0 , i; for (i = 0; jeg vender tilbage total; }
8 Opret en løkke Da strenge er faktisk arrays af tegn, kan du oprette en pegepind til et tegn til at sløjfe gennem en perlerække : . < pre > void replace_character ( char * s, char fra char til) { char * cp , for ( cp = s; cp && * cp , cp + +) if ( * cp == fra ) * cp = til ;}
< br > 9
Forstå den måde C visninger arrays. Arrays håndteres af C som pejlemærker , ved hjælp af pointer aritmetik . C vil automatisk formere sig, hvad du føjer til en pegepind af størrelsen af elementer den peger på . det betyder
scoringer [5 ] = 17, er nøjagtig den samme som * (scores + 5) = 17, . . Du kan bruge pegepinde som en forkortelse for array- dereferences for eksempel , * scoringer = 17, altid refererer til den 0. element i array.