4

プログラミングは初めてですので、ご容赦ください。コードの最後の行が何をしているのか、そしてこのコードブロック全体が何をしようとしているのかを誰かに説明してもらえますか?最初のブロックは、nodeという構造を作成し、それに*nextと*prevの2つのポインターを追加することです。ところで、これはリンクリストプログラムの一部です

struct node
 {
  char line[80];
  struct node *next,*prev;
 };

struct node *start=NULL,*temp,*temp1,*temp2,*newnode;

前もって感謝します。

4

4 に答える 4

6
struct node *start=NULL,*temp,*temp1,*temp2,*newnode;

次のようにすることができます

struct node *start=NULL;
struct node  *temp;
struct node *temp1;
struct node *temp2;
struct node *newnode;

もう分かりやすいかな..?

于 2013-03-17T05:08:03.400 に答える
4

最後の行は、、、、、およびを指すタイプの5struct nodeつのポインターを作成しています。startNULLtemptemp1temp2newnode

コードのブロック全体が、実際にはnode、80文字の配列を含み、その後に次と前へのポインターが続くという構造体を作成しています。したがって、二重リンクリストの構造を作成しています。

于 2013-03-17T05:05:35.603 に答える
2

最後の行は、構造体ノード型の 5 つのポインターを作成しています。ここで start は Null に初期化されます。

于 2013-03-17T05:06:33.007 に答える
2

コードの最後の行は 5 つの変数を定義しており、そのすべてが へのポインターstruct nodeです。そのうちの 1 つはstartNULL に初期化されます。変数が関数の外にある場合、他の変数も NULL に初期化されますが、関数内にある場合は初期化されません。初期化されていないポインターは、使用する前に初期化する必要があります。null ポインターは逆参照しないでください。狂気は、null ポインター (または、通常はコア ダンプ) の末尾にあります。

于 2013-03-17T05:06:49.607 に答える