2016-04-03 13 views
0

次のコードブロックは、キューを実装するC++プログラムから取得したものです。私は構造体、クラス、ポインタなどを知っていますが、構造体をあまり使わないので、意味が分かりません。*front = NULL,*rear = NULL,*p = NULL,*np = NULL;の意味です。これらのノード型ポインタは宣言されており、デフォルト値のNULLに設定されていますか?私が間違っていて、親切に説明したら、私を修正してください。次のC++コード行は何を意味していますか?

struct node 
 
{ 
 
    int data; 
 
    node *next; 
 
}*front = NULL,*rear = NULL,*p = NULL,*np = NULL;

答えて

3

それはこれと同じ意味

struct node 
{ 
    int data; 
    node *next; 
}; 
node *front = NULL, *rear = NULL, *p = NULL, *np = NULL; 
2

と同じです:

struct node 
{ 
    int data; 
    node *next; 
}; 

node *front = NULL; 
node *rear = NULL; 
node *p = NULL; 
node *np = NULL; 

をそして、それは間違いなく何の良いスタイルではありません。

ところで、これはnodeがクラスだった場合でも動作します。構造体は、基本的に、すべての要素がデフォルトでpublicであるクラスです。

もう1つの推奨事項:C++ 11には、ポインタを初期化するための特定のキーワードnullptrがあります。これは何が起きているのかをより明確に表現します。 NULLは、0に展開される単なるプリプロセッサマクロです。

関連する問題