2009-10-16 14 views
40

Ich nenne es immer "Pfeiloperator", aber ich bin mir sicher, dass es einen offiziellen Namen hat. Ich habe den C++ - Standard schnell überflogen und habe ihn nicht namentlich erwähnt.Wie lautet der offizielle Name von C++ - Pfeil (->)?

+0

In einem C99-Entwurf kann ich seinen Namen nicht finden. Es heißt immer "-> operator" in diesem Dokument. –

+0

@Mehrdad: Die nennen es "Pfeil-Operator" im Index obwohl – AnT

+3

AndreyT: Im Index kann ich "Pfeil-Operator (->)" und "Zeiger-Operator (->)" –

Antwort

59

Der C++ - Standard nennt es einfach "Pfeil" (§5.2.5).

+3

Zuerst in 5.2.4 erwähnt, dann aber auch mit dem Punktoperator ubiquitär. –

8

Nach Wikipedia's list of operators in C and C++ heißt es "Mitglied von Zeiger".

Aber um ganz ehrlich zu sein, habe ich es immer "Pfeil" genannt. Zum Beispiel, wenn ich den Code a->b hätte, würde ich das als "ein Pfeil b" lesen.

+1

Ich lese es auf die gleiche Weise. Ich frage mich, warum .... (P.S. Hallo zu!) –

+1

Ich fand den Wikipedia-Artikel, bevor ich die Frage gestellt. Trotz der Tatsache, dass es unter der Spalte "Name" in der Tabelle aufgeführt ist, bin ich geneigt zu glauben, dass das eine Beschreibung ist, kein Name. – rmeador

27

Bjarne Stroustrup nennt dies den Operator "Strukturzeiger-Dereferenzierung" (TC++ PL Special Edition, S. 102). Im Index bezeichnet er es als "Benutzerzugriffs" -Operator.

Nicht sicher, ob das "offiziell" ist, aber der Typ hat doch die Sprache geschrieben.

+1

Ich kann bestätigen, dass dies der Fall ist. (Ja, ich ging tatsächlich zur Sonderausgabe von C++ - Programmiersprache und überprüfte sie.) –

+19

er erfand nicht C, und von dort kommt der Operator her. – asveikau

+2

Asveikau, beide Aussagen sind richtig, aber was hat das mit der Frage zu tun? – John

12

Der offizielle Name für diesen Operator ist Klassenmitgliedszugriffsoperator (siehe 5.2.5). Dieser Name ist zwar an die Operatoren . und -> angehängt, was bedeutet, dass es sich eher um einen Gruppennamen handelt. Die . wird auch als Punktoperator und -> als Pfeiloperator im Standardtext bezeichnet.

Später hinzugefügt: Das obige gilt für C++ - Standard. Der C-Standard bezieht sich nur auf -> als Pfeiloperator im Index. Der Haupttext des Dokuments scheint keinen bestimmten Namen zu verwenden.

0

Die ISO-C-Standard nennt es die->Betreiber oder der Memberzugriff->Betreiber. So scheinbar hat es nicht einen „offiziellen“ Namen in C.

Ich persönlich sage nur Zeiger oder Pfeil.

4

Es ist nur das dit (dh nicht Punkt).

1

Dereference Zeiger

1

ich gehört habe es ein paar verschiedene Möglichkeiten genannt, war nie sicher jemand insbesondere offiziellere als ein anderer war.

  • Elementauswahl Operator
  • Pointer Dereferenzierungsoperator
  • "der Pfeil thingy"

und ich bin sicher, dass es andere gibt. Persönlich bin ich weniger besorgt darüber, was es in einem Buch oder einer offiziellen Spezifikation genannt wird, und mehr daran interessiert, dass die Leute wissen, was ich meine, wenn ich mich darauf beziehe, so dass meiner Meinung nach "arrow thingy" der beste Name dafür ist klar zu verstehen, worauf Bezug genommen wird.

2

Diese Begriffe sind in keiner Weise offiziell, aber ich würde der Punkt-Operator den direkt (Klasse) Mitglied Zugriffsoperator und der Pfeil Betreiber des indirektes (Klasse) Mitglied Zugriffsoperator nennt ihre Beziehung zu klären, mit der Indirektionsoperator.

2

Der Index nach ISO/IEC 9899: 1999 (der C99-Standard) hat drei Indexeinträge für "arrow operator" (in seinem eigenen Recht und unter "union" und "struct") und verweist auf Abschnitt 6.5. 2.3 (Struktur und Gewerkschaftsmitglieder, im Abschnitt über Postfix-Operatoren). Allerdings wird "Pfeil" in Abschnitt 6.5.2.3 oder anderswo im Standard als der Index nicht erwähnt (jede andere Erscheinung von "Pfeil" ist Teil von "schmal" oder eine Ableitung von schmal).

Arrow ist daher halb offiziell in der C-Norm sanktioniert (der Index ist jedoch nicht normativ oder Standardeinstellung).

0

Es gab in letzter Zeit eine Frage, wie der Operator im Zusammenhang "ausgesprochen" wird. Betrachten Sie den Multiplikationsoperator, der im Kontext "mal" ausgesprochen wird.

Ich betrachte beide Mitglieder Zugriffsoperatoren {. ->}, um Besitz anzuzeigen, damit ich sie als possessiv auf dem Objekt ausspreche.

Zum Beispiel ... fido-> kragen() ... würde als "fido's collar" ausgesprochen werden.

Auf der anderen Seite ist der Besitz nicht für Verben so geeignet ... fido-> run() ... würde als "Fido läuft" ausgesprochen werden.

+0

Dies ist Off-Topic: Das OP fragte, wie das Symbol aufgerufen wurde, und eine Antwort, die den C++ - Standard zitiert, wurde bereits bereitgestellt. Wenn es eine andere Frage bezüglich der Aussprache von Symbolen gäbe, sollten Sie dort eher kommentieren als hier. – DMH