2009-10-16 10 views
40

私はいつもそれを「矢印演算子」と呼んでいますが、正式な名前が付いていると確信しています。私はすぐにC++の標準を抜きにして、名前で言及されていなかった。C++の矢印( - >)演算子の正式名称は何ですか?

+0

C99ドラフトでは、その名前の記載が見つかりません。そのドキュメントでは常に " - >演算子"と呼ばれます。 –

+0

@Mehrdad:これは、インデックス内の "矢印演算子"と呼ばれます。 – AnT

+3

AndreyT:インデックスでは、 "矢印演算子( - >)"と "ポインタ演算子( - >)"が表示されます。 –

答えて

59

C++標準では単に「矢印」(§5.2.5)と呼ばれています。

+3

最初に5.2.4で言及しましたが、その後ドット演算子で遍在します。 –

8

Wikipedia's list of operators in C and C++によれば、これは「ポインタによるメンバ」と呼ばれます。

しかし、本当に正直言って、私はいつもそれを「矢」と呼んできました。たとえば、コードa->bがあれば、それを「矢印a」と読みます。

+1

同じように私はそれを読む。私はなぜだろう... (P.S.こんにちは!) –

+1

私は質問を投稿する前にウィキペディアの記事を見つけました。テーブルの「名前」列の下にリストされているにもかかわらず、その名前は説明ではなく名前であると信じる傾向があります。 – rmeador

27

Bjarne Stroustrupは、構造ポインタの逆参照演算子(TC++ PL Special Edition、102ページ)を呼び出します。インデックスでは、これを「メンバーアクセス」オペレータと呼びます。

これが "公式"であるかどうかはわかりませんが、男はその言語を書いていました。

+1

これが事実であることを確認することができます。 (はい、私は実際にC++プログラミング言語スペシャル・エディションに行き、それをチェックアウトしました) –

+19

彼はCを発明しませんでした。 – asveikau

+2

asveikau、両方のあなたの声明は正しいですが、それは質問と関係がありますか? – John

12

この演算子の正式名称は、クラスメンバーアクセス演算子(5.2.5を参照)です。この名前は.->の両方の演算子に付けられていますが、これはグループ名のほうが多いことを意味します。 .は、ドットオペレーター->という矢印オペレーターとも呼ばれます。

後で追加:上記はC++標準に該当します。 C標準は->と表記しています。矢印オペレータのみです。この文書の本文は、特定の名前を使用していないようです。

0

ザISO C標準は、->オペレータまたはメンバーアクセス->オペレータを呼び出します。それはC.

個人的に

に「公式」の名前を持っていないので、どうやら、私はちょうどポインタ矢印を言います。

4

そのちょうどdit(すなわちドットではない)。私はそれがいくつかの異なる方法に言及聞いた

1

逆参照ポインタ

1

は、特にいずれかが他より正式だったわかりませんでした。

  • メンバー選択演算子
  • ポインタ間接参照演算子
  • "矢印ブツ"

と私は他の人があることを確認しています。個人的に私は、本や公式の仕様で何が呼び出されたのか心配しておらず、私がそれを参照するとき、人々が私の言いたいことを知っていることをもっと心配しています。何が参照されているかを明確に理解する。

2

これらの用語は、決して公式であるが、私は、ドット演算子呼びたいダイレクト(クラス)のメンバアクセス演算子と矢印演算子間接的な(クラス)のメンバアクセス演算子はとの関係を明確にします間接演算子。

2

ISO/IEC 9899:1999(C99規格)の索引には、「矢印演算子」(独自の権利および '共用体'および「構造体」)の3つの索引項目があり、6.5項を参照しています。 2.3(Postfix演算子の節の構造体と共用体のメンバ)しかし、6.5.2.3項の「矢」、または標準以外のどこにいても、「矢印」のすべての外観は「狭い」または狭い派生物の一部である。

したがって、矢印はC標準で正式に承認されています(ただし、インデックスは標準的な設定ではありません)。

0

オペレータが文脈でどのように「発音する」かに関する最近の質問がありました。 コンテキストで「時間」と発音される乗算演算子を考えてみましょう。

私は両方のメンバーアクセス演算子{。 - >}は所有権を示すため、私はそれらをオブジェクト上の所有者として発音します。

たとえば... fid-> collar() ...「fido's collar」と発音されます。

一方、所有物は動詞には適していません。 fido-> run() ... "fido runs"と発音されます。

+0

これはオフトピックです:OPは、シンボルが呼び出されたものを尋ね、C++標準を引用した回答がすでに提供されています。シンボルの発音に関する別の質問があった場合は、ここではなくコメントする必要があります。 – DMH

関連する問題