C maakt uitgebreid gebruik van het geheugen pointers voor de behandeling van arrays , functie-aanroepen , datastructuren en nog veel meer . Weten hoe om te werken met pointers is de sleutel tot een efficiënte C -codering . Instructies Maak Memory Pointer Variabelen 1 Begrijp dat het geheugen pointer variabelen wijzen altijd naar de gegevens van een bepaald type . Bijvoorbeeld , een pointer naar een int verschilt van een pointer naar een char . Echter , C zal je niet weerhouden hen vrijelijk vermengen . Doe dit alleen als je zeker weet dat je weet wat je doet . Kopen van 2 Maak een memory pointer variabele met behulp van de syntaxis je zou gebruiken om een variabele van het gewenste type te maken , maar met een sterretje ( *) voor de naam van de variabele , zoals deze : int * x ; 3 Overweeg NULL . Pointers kan altijd NULL ( 0 ) , en dit wordt meestal gebruikt om te verwijzen naar een pointer die nog niet is ingesteld om ergens op wijzen . Referentie en Verwijzing van 4 Krijg tot referentiebedrijf weten . Verwijzen verwijst naar het proces van het vinden van de pointer naar een bestaande variabele . In C , de verwijzingen exploitant is het en-teken ( & ) . Bijvoorbeeld : int color = 5 ; int * pointer_to_color ; pointer_to_color = &color; 5 Gebruik dereferentie . dereferentie is het proces van het volgen van een pointer naar de waarde , het tegenovergestelde van verwijzingen . In C het sterretje ( * ) wordt gebruikt voor dereferentie , als volgt : printf ( " Kleur is % d \\ n " , * pointer_to_color ) ; /* prints 5 * / Gebruik Memory Pointer Variabelen < br > Pass 6 in een verwijzing naar de variabele wanneer u een functie in staat zijn om een variabele te veranderen , in plaats van het passeren waarde van de variabele nodig . Dit laat de functie dereferentie om de waarde te wijzigen : leegte convert_color_to_RGB ( int kleur , int * rood , int * groen , int * blauw ) { * rood = redpart ( kleur ) ; * groen = greenpart ( kleur ) ; * blauw = bluepart ( kleur ) ;} convert_color_to_RGB ( 15 , & myred , & mygreen , & MyBlue ) ; Werken rond de grenzen C 's 7 . Wanneer u wilt een array of structuur in een functie te slagen, moet je een pointer in plaats voorbij , want C staat alleen enkele soorten gegevens worden doorgegeven aan functies : int subtotaal ( int * scores , int howmany ) { int totaal = 0 , i; for ( i = 0 ; ik terugkeer totaal ; } 8 Maak een lus Sinds snaren zijn eigenlijk arrays van karakters , kunt u een pointer maken om een teken voor het doorlussen van een string : . leegte replace_character ( char * s , char van , char naar ) { char * cp , want (gs = s ; cp && * cp ; cp + + ) if ( * cp == uit ) * cp = aan ; } < br > 9 Begrijp de manier waarop C standpunten arrays . arrays worden behandeld door C als pointers , met behulp van pointers . C automatisch vermenigvuldigen wat je toevoegt aan een pointer door de grootte van de elementen waarnaar het verwijst . dat betekent scores [ 5 ] = 17 , is precies hetzelfde als * ( + scores 5 ) = 17 , . . kunt pointers gebruikt als afkorting voor matrix dereferences bijvoorbeeld * score = 17 , altijd naar de 0 element van de array .
|