66 Stimmen

Verwendung der Operatoren Punkt (".") und Pfeil ("->") in C vs. Objective-C

Ich versuche, meinen Kopf um einige der Unterschiede in der Verwendung und Syntax in C vs. Objective-C zu wickeln. Insbesondere möchte ich wissen, wie (und warum) die Verwendung des Punktoperators und des Pfeiloperators in C und Objective-C unterschiedlich ist. Hier ist ein einfaches Beispiel.

C-Code:

// declare a pointer to a Fraction
struct Fraction *frac;

...

// reference an 'instance' variable
int n = (*frac).numerator;     // these two expressions
int n = frac->numerator;       // are equivalent

Objektiv-C-Code:

// declare a pointer to a Fraction
Fraction *frac = [[Fraction alloc] init];

...

// reference an instance variable
int n = frac.numerator;        // why isn't this (*frac).numerator or frac->numerator??

Wenn man also sieht, wie frac in beiden Programmen gleich ist (d. h. es ist ein Zeiger auf ein Fraction-Objekt oder eine Struktur), warum verwenden sie dann beim Zugriff auf die Eigenschaften eine unterschiedliche Syntax? Insbesondere wird in C die numerator wird die Eigenschaft mit frac->numerator aber in Objective-C wird er mit dem Punkt-Operator aufgerufen, mit frac.numerator . Seit frac in beiden Programmen ein Zeiger ist, warum sind diese Ausdrücke unterschiedlich? Kann mir jemand helfen, dies zu klären?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X