両方の用途を理解したいですか?私は今あるNode *root
によって理解することはNode* root
自体をノードへのポインタである一方、ノードオブジェクトへのポインタを根絶するための基準であるノード*ルートとノード*ルートの違い
2
A
答えて
11
間隔は、この定義では重要ではない、あなたは、交換可能に、次のすべてを書くことができ、それらはすべてNode
へのポインタとしてroot
を定義します。
Node*root;
Node *root;
Node* root;
Node * root;
Node *root; // I have seen that!
Node
*
root
;
Node(((*(root)))); // yes, this is allowed too!
\
N\
od\
e*r\
oot ; // ASCII art style: a corner case ;-)
それはあなたが好むどの、スタイルの問題です使用する。ただ、心の中でこれらの考慮事項を負担:
可読性が非常に重要愚かなと微妙なバグを回避し、それが自分自身や他の人があるかどうか、維持するためにコードを容易にするためにです。
コードを読みやすくするためには、一貫性が必要です。スタイルを1つ選択して、どこでも使用できます。
Node * root
は、乗算のように見えますが、混乱を招く傾向があります。あなたは同じ文で複数の変数を宣言するとタイプの末尾に*
にタッキングは混乱を作成します。
Node* root, tree; // defines a pointer root and a structure tree.
これは、多くのプログラマは、タックすることを好む理由です
Node *root, *tree; // defines 2 Node pointers root and tree.
のに対し、宣言の識別子に
*
を追加します。typedef Node *Nodeptr;
と同様typedef
隠すへのポインタの性質を利用し、または悪化し
typedef Node *List;
は、エラーが発生しやすくなり、さらに、両方のプログラマの混乱や、読者の心を作成する傾向があります。
4
node *foo
とnode* foo
はコンパイラと同じです(あなたが参照渡しすることができます)。
!!楽しい!あなたは知らないかもしれません。
int *a;
int b;
はあなたが与えなければならない1つのステートメントで複数のポインタを宣言する:コンパイラが見ている何
int* a, b; // two int*, right?
は、int型のポインタとint型の宣言です:あなたは、複数のポインタの宣言はどのようなものかを書くとき各*
:
int *a, *b;
又は
int* a, * b;
関連する問題
- 1. GKEノードルートのIPアドレス割り当てのデフォルト戦略
- 2. {!!の違い!!}と{{}}
- 3. 「 '」と「'」の違い
- 4. ノードルートは、私はMEANスタックアプリを構築していますが、それはエラーを投げ、それが私の前を実行する前にクラッシュしていますので、角度が私のレンダリングのURLでモジュールを認識できない問題に実行しています正しいURL
- 5. 違いダウンケースとダウンケースの違い! Rubyで
- 6. Open GL ES - GLenumとGlintの違いとGLintとGLsizeiの違い
- 7. PythonとPandasの違いの相違点
- 8. "!"の違いと "。"オペレータ
- 9. g ++との違い
- 10. "?"の違いと "@"ビジュアルベーシック
- 11. $ @と$の違い! perl
- 12. Kafka - DefaultPartitionerとMessageKeyの違いとカスタムパーティショナーの違い
- 13. タグとロールの違い - タグとロールの違い
- 14. posix_memalignとmmapとの違い
- 15. OAuth2とOmniauthとの違い
- 16. とnewgemとの間違い
- 17. Node.jsとtomcatとの違い
- 18. BroadcastReceiverとインテントとの違い
- 19. 弱いとunsafe_unretainedの違い
- 20. ローカルRデータフレームとSparkRデータフレームとRDDとの違いと相違
- 21. 違い>と=
- 22. 違いとMVC
- 23. PHPの::と - の違いは?
- 24. Bashの$ *と$ @の違い
- 25. - '' の使用の違いと ""
- 26. Scalaの&と&&の違いは?
- 27. javascriptの+ =と= +の違い
- 28. の違い[、]と[] [] C#の
- 29. MemberInitとのパフォーマンスの違い
- 30. httpとデフォルトのservemuxの違いは?この違いは何
これがCであると仮定すると、それらは同じです。 –
Cで "ref"というものはありません。 –
両方とも同じで、ルートとはNode型へのポインタであるポインタです。これは、今からのルートが、データ型がNodeでもある変数のアドレスを格納できることを意味します。変数があなたの例のようなポインタであると言うとき、それはあなたが宣言したポインタが、そのポインタ自身が宣言された型の他の変数のメモリアドレスを格納できることを意味します。それは何を指しているか(他の変数やメモリ位置のアドレスを格納するためのもの)です。 –