あなたは視覚的な思想家であれば、それはデータ値に通じるブラックホールとしてアスタリスクを想像するのを助けることができます。したがって、それはポインタです。
アンパサンド穴の反対側の端部であり、解明さアスタリスク又はパイロットがブラックホールから出る遷移を乗り越えるように不規則過程で約ウォブリング宇宙船と考えます。
私は、C++がアンパサンドの意味をオーバーロードして、私たちに参照を与えることが非常に混乱していることを覚えています。 Cを使用している国際的な聴衆によって正当化され、キーボードの制限に関する既知の問題を抱えていた、それ以上の文字の使用を避けようとする絶望的な試みで、彼らは混乱の主な原因を追加しました。
C++の助けになることの1つは、参考文献としてのあらかじめ用意されている逆参照ポインタと考えることです。引数を渡すときに& someVariableを使用するのではなく、someVariableを定義したときに末尾のアンパサンドをすでに使用しています。それからもう一度、あなたをさらに混乱させるかもしれません!
私のペットの一つは、私はAppleのObjective-Cのサンプルに公布見に不幸だった、嫌い、代わりにint* someIntPointer
IMHOのレイアウトスタイルint *someIntPointer
で、変数にアスタリスクを維持することは、昔ながらのCであります変数をどのように定義するかの仕組みをデータ型に基づいて強調しています。
someIntPointer
のデータ型は、文字通り整数へのポインタであり、宣言にはそれを反映する必要があります。人が同じライン上で混在ポインタと値を宣言する機能は、意図的に、強力であると主張する一方で
int* a, b; // b is a straight int, was that our intention?
int *a, *b; // old-style C declaring two pointers
int* a;
int* b; // b is another pointer to an int
:これは、次のような微妙なバグを避けるために、あなたは1行に1つの変数を宣言する必要性につながるん私はそれが微妙なバグと混乱につながるのを見ました。
"C/C++"とは言わないでください。 CとC++は異なる言語です。 –
それを変更しましたが、ポインタは両方で同じように動作しませんか? – spencewah
Cには参照がありません。 –