2010-12-02 1 views
5

Aus Neugier; warum ist Konvention für Zeiger in C Sprachen wie folgt aus:Konvention für Zeiger *

NSString *str = ...

Wäre es nicht sinnvoller sein, zu schreiben:

NSString* str = ...

weil wir Zeiger auf NSString definieren? (in Objective-C Methoden haben wir (NSString *) Parameter1 Konvention)

Wieder - ich frage aus Neugierde und in der Lage sein, die Logik dahinter besser zu verstehen ... Ich versuche nicht, die neu zu erfinden Rad oder starten Flammenkrieg.

+0

in der Bibel (k & r) sie bleiben auf Stern-nach-rechts-Konvention, obwohl Zeiger Typ ist es ein Typ. – matcheek

+0

Diese Frage muss eine dup sein. –

Antwort

21

Wenn Sie mehrere Zeigervariablen in einer einzigen Erklärung deklarieren, müssen Sie

char *a, *b; 

seit der Erklärung

char* a, b; 

schreiben würde a als char Zeiger deklarieren, aber b als einfache Zeichen. IOW, dieser Abstand zeigt, dass der Stern wirklich nur an den Namen bindet, wo er erscheint.