C macht ausgiebig Gebrauch von Speicher -Arrays für den Umgang mit Zeigern , Funktionsaufrufe , Datenstrukturen und vieles mehr. Wissen, wie man direkt mit Zeiger ist der Schlüssel zur effizienten C -Codierung. Anleitung
Neues Speicher Zeigervariablen
1
Verstehen Sie, dass Speicher Zeigervariablen verweisen immer auf Daten eines bestimmten Typs . Zum Beispiel ist ein Zeiger auf eine int unterscheidet sich von einem Zeiger auf einen char . Allerdings wird C nicht davon abhalten, frei Mischen sie. Tun Sie dies nur , wenn Sie sicher, dass Sie wissen, was du tust.
2
erstellen Speicher Zeigervariable mithilfe der Syntax, die Sie verwenden, um eine Variable des gewünschten Typs zu schaffen würde , aber mit ein Sternchen (* ) vor dem Variablennamen , wie folgt aus: int * x
;
3 Betrachten NULL. Zeiger können immer NULL (0) , und dies ist in der Regel verwendet, um einen Zeiger, der noch nicht festgelegt wurde , um überall darauf verweisen.
Referenz und Dereference
4
Lernen Sie Referenzierung wissen . Referenzierung
bezieht sich auf den Prozess des Findens der Zeiger auf einer vorhandenen Variablen . In C ist die Referenzierung Operator das kaufmännische Und (&) . Zum Beispiel : int color = 5 ; int * pointer_to_color ; pointer_to_color = &color;
5 Nutzen Dereferenzierung . Dereferenzieren
ist der Prozess nach einen Zeiger auf den Wert , der gegenüber der Referenzierung . In C das Sternchen (*) ist für die Dereferenzierung verwendet , wie folgt: printf (" Die Farbe ist % d \\ n", * pointer_to_color ); /* 5 * Drucke /Rabatt- Speicher Pointer Variablen
6 Pass in einen Zeiger auf die Variable, wenn Sie eine Funktion in der Lage sein , um eine Variable zu ändern, statt der Weitergabe der Wert der Variablen müssen . Auf diese Weise können die Funktion nutzen Dereferenzieren um den Wert zu ändern :
nichtig convert_color_to_RGB (int Farbe, int * red , int * grün, blau int * ) { * rot = redpart ( Farbe); * grün = Greenpart ( Farbe); * blau = bluepart (Farbe) ;} convert_color_to_RGB (15, & myred & mygreen & MyBlue ); Seite 7 Umgehen C seine Grenzen . Wenn Sie ein Array oder Struktur in eine Funktion übergeben möchten, müssen Sie einen Zeiger statt passieren , weil C erlaubt nur einzelne Datentypen an Funktionen übergeben werden :
int Wert (int * Partituren, int howmany ) {int total = 0, i ; for (i = 0; i zurückkehren insgesamt ;} Seite 8 erstellen Schleife Da Strings tatsächlich sind Arrays von Zeichen , können Sie einen Zeiger auf einen Charakter zu erstellen , um eine Schleife durch einen String : . < pre > Leere replace_character (char * s, char von , char to) { char * cp ; for ( cp = s; && cp * cp ; cp + +) if ( * cp == aus ) * cp = zu ;}
9
Verstehen Sie den Weg C Ansichten Arrays. Arrays von C als Zeiger behandelt , mit Pointer-Arithmetik . C automatisch vermehren , was Sie zu einem Zeiger durch die Größe der Elemente hinzuzufügen er auf . das bedeutet
Partituren [5] = 17; ist genau das gleiche wie * ( Noten + 5) = 17; . . können Zeiger als Abkürzung für Array dereferenziert verwenden beispielsweise * Werte = 17; bezieht sich immer auf die 0. Element des Arrays.